มันขึ้น error ไม่รู้ว่ามันติดที่ ตรงไหน ไม่เข้าใจตัวแปร $strPath
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP(COM) Excel.Application Tutorial</title>
</head>
<body>
<?
include("config.php");
$strSQL = "SELECT * FROM customer";
$objQuery = mysql_query($strSQL);
if($objQuery)
{
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
//*** Excel Document Root ***//
$strFileName = "MyXls/MyExcel.xls";
//*** Connect to Excel.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Add();
//*** Create Sheet 1 ***//
$xlBook->Worksheets(1)->Name = "My Customer";
$xlBook->Worksheets(1)->Select;
//*** Header ***//
$xlApp->ActiveSheet->Cells(1,1)->Value = "CustomerID";
$xlApp->ActiveSheet->Cells(1,2)->Value = "Name";
$xlApp->ActiveSheet->Cells(1,3)->Value = "Email";
$xlApp->ActiveSheet->Cells(1,4)->Value = "CountryCode";
$xlApp->ActiveSheet->Cells(1,5)->Value = "Budget";
$xlApp->ActiveSheet->Cells(1,6)->Value = "Used";
//***********//
$intRows = 2;
while($objResult = mysql_fetch_array($objQuery))
{
//*** Detail ***//
$xlApp->ActiveSheet->Cells($intRows,1)->Value = $objResult["CustomerID"];
$xlApp->ActiveSheet->Cells($intRows,2)->Value = $objResult["Name"];
$xlApp->ActiveSheet->Cells($intRows,3)->Value = $objResult["Email"];
$xlApp->ActiveSheet->Cells($intRows,4)->Value = $objResult["CountryCode"];
$xlApp->ActiveSheet->Cells($intRows,5)->Value = $objResult["Budget"];
$xlApp->ActiveSheet->Cells($intRows,6)->Value = $objResult["Used"];
$intRows++;
}
@unlink($strFileName); //*** Delete old files ***//
$xlBook->SaveAs($strPath."/".$strFileName); //*** Save to Path ***//
//$xlBook->SaveAs(realpath($strFileName)); //*** Save to Path ***//
//*** Close & Quit ***//
$xlApp->Application->Quit();
$xlApp = null;
$xlBook = null;
$xlSheet1 = null;
}
mysql_close($conn);
?>
Excel Created <a href="<?=$strFileName?>">Click here</a> to Download.
</body>
</html>
มันขึ้น error:
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Excel<br/><b>Description:</b> Microsoft Excel cannot access the file 'C:\AppServ\www\final_pro\MyXls\24DCB000'. There are several possible reasons: • The file name or path does not exist. • The file is being used by another program. • The workbook you are trying to save has the same name as a currently open workbook.' in C:\AppServ\www\final_pro\reportexcil.php:51 Stack trace: #0 C:\AppServ\www\final_pro\reportexcil.php(51): variant->SaveAs('C:\AppServ\www\...') #1 {main} thrown in C:\AppServ\www\final_pro\reportexcil.php on line 51Tag : PHP
Date :
2013-10-01 17:58:30
By :
jadiloke
View :
659
Reply :
1
แปลตามความเป็นไปได้ที่ error นะครับ
1. โฟลเดอร์ไม่มีจริง ให้เช็คก่อนครับว่ามีโฟลเดอร์ MyXls จริงไม ตามพาท คือ C:\AppServ\www\final_pro\MyXls\
2. ไฟล์นั้นถูกใช้งานอื่นโดยโปรแกรมอื่น ถ้าเปิดไฟล์ MyExcel.xls อยู่ให้ทำการปิดไปก่อน เป็นไปได้ปิดทั้งโปรแกรม excel เลยหรือโปรแกรมที่เปิดอ่าน xls นี้
3. ไฟล์นั้นเปิดใช้งานจึงไม่สามารถบันทึกได้ ให้แก้แบบเดียวกับข้อ 2
ส่วนอีกอันที่พบบ่อย excel.exe ค้างครับ ทำให้ไม่สามารถเขียนไฟล์ได้ ให้เปิด task manager แล้วทำการ end process excell.exe ให้หมดครับ
Date :
2013-10-02 02:10:35
By :
xbeginner01
Load balance : Server 01