export to excel แล้วไม่เคลียร์ค่าค่ะ แม้จะ refresh หรือ Ctrl+F5 แล้วก็ตาม
เขียน export ข้อมูลออกมาเป็น .xls แล้วค่ะ แต่ปัญหาคือมันไม่เคลียร์ค่า หลังจากที่เปิดแล้วครั้งแรก ถ้าแก้ไขข้อมูลใดๆ อีกและจะ refresh ดูข้อมูลใหม่ มันจะเป็นข้อมูลเดิมค่ะ ต้องเพิ่ม code ส่วนใหนที่จะทำให้มันเคลียร์ค่าทุกครั้งคะ
ปล.ใช้ Ctrl+F5 แล้วก็ไม่ได้ค่ะ แต่ถ้าเปลี่ยนชื่อ file แล้ว refresh จะใช้งานได้
Code (PHP)
<?
//Export to excel
$objConnect = mysql_connect("localhost","root","111222") or die("Error Connect to Database");
$objDB = mysql_select_db("lss");
if($chk_month!="" && ($chk_year!="") && $chk_site!="") {
$strSQL = "select Distinct(dateFrom) from insertguest where (mFrom='$chk_month')AND(yFrom='$chk_year')AND(ghID='$chk_site') order by dateFrom";
}else{
$strSQL ="select Distinct(dateFrom) from insertguest where (mFrom='$chk_month')AND(yFrom='$chk_year')order by dateFrom";
}
$objQuery = mysql_query($strSQL);
if($objQuery)
{
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
//*** Excel Document Root ***//
$FileName="$chk_month$chk_year$chk_sitename";
$strFileName = "MyXls/".$FileName.".xls";
#$strFileName = "MyXls/Ex.xls";
//*** Connect to Excel.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Add();
//*** Create Sheet 1 ***//
$xlBook->Worksheets(1)->Name = "Detail";
$xlBook->Worksheets(1)->Select;
//*** Width & Height (A1:A1) ***//
$xlApp->ActiveSheet->Range("A1:A1")->ColumnWidth = 10.0; #Date
$xlApp->ActiveSheet->Range("B1:B1")->ColumnWidth = 5.0; #No
$xlApp->ActiveSheet->Range("C1:C1")->ColumnWidth = 15.0; #HN
$xlApp->ActiveSheet->Range("D1:D1")->ColumnWidth = 10.0; #Title
$xlApp->ActiveSheet->Range("E1:E1")->ColumnWidth = 30.0; #Name
//*** Report Title ***//
$xlApp->ActiveSheet->Range("A1:K1")->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Range("A1:K1")->MergeCells = True;
$xlApp->ActiveSheet->Range("A1:K1")->Font->Bold = True;
$xlApp->ActiveSheet->Range("A1:K1")->Font->Size = 16;
$xlApp->ActiveSheet->Range("A1:K1")->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(1,1)->Value = "DETAIL OF GUEST ATTENDANCES LAGUNA BANGKOK CLINIC IN.$FileName";
//*** Header ***//
$xlApp->ActiveSheet->Cells(3,1)->Value = "DATE";
$xlApp->ActiveSheet->Cells(3,1)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(3,1)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,1)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,1)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells(3,2)->Value = "NO";
$xlApp->ActiveSheet->Cells(3,2)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(3,2)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,2)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,2)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells(3,3)->Value = "HN";
$xlApp->ActiveSheet->Cells(3,3)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(3,3)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,3)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,3)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells(3,4)->Value = "TITLE";
$xlApp->ActiveSheet->Cells(3,4)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(3,4)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,4)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,4)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells(3,5)->Value = "Guest's Name";
$xlApp->ActiveSheet->Cells(3,5)->Font->Bold = True;
$xlApp->ActiveSheet->Cells(3,5)->VerticalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,5)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells(3,5)->BORDERS->Weight = 1;
//***********//
$intRows = 4;
while($objResult = mysql_fetch_array($objQuery))
{
$dateFrom = $objResult['dateFrom'];
//*** Detail ***//
$xlApp->ActiveSheet->Cells($intRows,1)->Value = $dateFrom;
$xlApp->ActiveSheet->Cells($intRows,1)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells($intRows,1)->HorizontalAlignment = -4108;
if($chk_month!="" && ($chk_year!="") && $chk_site!="") {
$sql="select * from insertguest,nation,ghotel,diagnosis,doctor where (insertguest.nID=nation.nID)AND(insertguest.ghID=ghotel.ghID)AND(insertguest.daID=diagnosis.daID)AND(insertguest.drID=doctor.drID)AND(insertguest.dateFrom='$dateFrom')AND(insertguest.ghID='$chk_site')";
}else{
$sql="select * from insertguest,nation,ghotel,diagnosis,doctor where (insertguest.nID=nation.nID)AND(insertguest.ghID=ghotel.ghID)AND(insertguest.daID=diagnosis.daID)AND(insertguest.drID=doctor.drID)AND(insertguest.dateFrom='$dateFrom')";
}
$result = mysql_query($sql);
//$c=0;
while($record = mysql_fetch_array($result)) {
$gHN = $record['gHN'];
$gHN1=substr($gHN,0,2); //นับจากซ้ายมือเอา 2 ตัว format = xx-xx-xxxxxx
$gHN2=substr($gHN,2,2);
$gHN3=substr($gHN,4,6);
$z=$z+1;
$xlApp->ActiveSheet->Cells($intRows,2)->Value = $z;
$xlApp->ActiveSheet->Cells($intRows,2)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells($intRows,2)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells($intRows,3)->Value = "$gHN1-$gHN2-$gHN3";
$xlApp->ActiveSheet->Cells($intRows,3)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells($intRows,4)->Value = $record["gTitle"];
$xlApp->ActiveSheet->Cells($intRows,4)->BORDERS->Weight = 1;
$xlApp->ActiveSheet->Cells($intRows,4)->HorizontalAlignment = -4108;
$xlApp->ActiveSheet->Cells($intRows,5)->Value = $record["gName"];
$xlApp->ActiveSheet->Cells($intRows,5)->BORDERS->Weight = 1;
$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($objConnect);
?>
Excel Created <a href="<?=$strFileName?>">Click here</a> to Download.
Tag : PHP, MySQL
Date :
2011-07-18 11:55:29
By :
lucifer
View :
1095
Reply :
2
ลอง save ไฟล์เป็นชื่อใหม่ครับ
Date :
2011-07-18 16:12:59
By :
webmaster
ขอบคุณค่ะ คุณ Win
แต่ถ้าไม่ต้องการเปลี่ยนเป็นชื่ออื่น (เนื่องจากชื่อไฟล์จะเอามาการเลือกของ user เอง ซึ่งจะ defult เป็น เดือนปี - 072011- format เอามาจาก user ซึ่งเป็นรูปแบบตายตัว)
ใน 1 เดือน user จะ export หลายครั้ง ในแต่ละครั้งก็จะเป็น file ชื่อเดิม
ถ้าหลีกเลี่ยงไม่ได้แบบนี้ มีวิธีแก้ไขอย่างอื่นอีกใหมคะ
ปล.ดิฉันไม่ได้กด save นะคะ แต่ใช้วิธีการ open เพื่อดูผลลัพธ์ค่ะ
Date :
2011-07-18 17:44:40
By :
lucifer
Load balance : Server 04