ถ้า ไม่มีอธิบายไว้ ลอง ใช้ ของ ที่ นี่ ดูครับ
เครื่องมือสำหรับการสร้างไฟล์ Excel
1. PHP WriteExcel Class สำหรับสร้างไฟล์ Excel ดาวน์โหลดได้จาก
http://www.bettina-attack.de/jonny/view ... writeexcel
วิธีการเขียนให้ PHP สามารถ Export ออกมาเป็น Excel
1. เมื่อดาวน์โหลดไฟล์ PHP WriteExcel Class มาแล้วก็ทำการแตกลง Directory ไหนก็ได้นะครับยกตัวอย่างเช่น /home/phpexcel
2. ใน Directory /home/phpexcel ให้เอาแต่ไฟล์ที่มีชื่อขึ้นต้นด้วย class.* มานอกนั้นลบไปได้เลยครับ
3. ในไฟล์ class.writeexcel_worksheet.inc.php ให้ไปหาคำว่า $fh=fopen(tempnam พอเจอแล้ว Comment ด้วย # ด้านหน้าสุดของบรรทัดเลยครับ
4. ในไฟล์ class.writeexcel_worksheet.inc.php ให้หาคำว่า $this->_print_gridlines = 1; ให้แก้เป็น $this->_print_gridlines = 0;
5. วิธีการเขียนโปรแกรมให้ Export ออกมาเป็น Excel
<?
require_once "/home/phpexcel/class.writeexcel_workbook.inc.php";
require_once "/home/phpexcel/class.writeexcel_worksheet.inc.php";
$token = md5(uniqid(rand(), true));
$fname= "../tmp/$token.xls";
$workbook =& new writeexcel_workbook($fname);
$worksheet =& $workbook->addworksheet("ข้อมูลนักศึกษาที่ลงทะเบียน");
$worksheet->set_margin_right(0.50);
$worksheet->set_margin_bottom(1.10);
## Set Format ##
$xlscelldesc_header =& $workbook->addformat();
$xlscelldesc_header->set_font('Angsana New');
$xlscelldesc_header->set_size(18);
$xlscelldesc_header->set_color('black');
$xlscelldesc_header->set_bold(1);
$xlscelldesc_header->set_text_v_align(1);
$xlscelldesc_header->set_merge(1);
$xlsCellDesc =& $workbook->addformat();
$xlsCellDesc->set_font('Angsana New');
$xlsCellDesc->set_size(14);
$xlsCellDesc->set_color('black');
$xlsCellDesc->set_bold(1);
$xlsCellDesc->set_align('left');
$xlsCellDesc->set_text_v_align(1);
## End of Set Format ##
## Set Column Width & Height กำหนดความกว้างของ Cell
$worksheet->set_column('A:B', 2);
$worksheet->set_column('B:C', 4);
$worksheet->set_column('C:D', 11.29);
$worksheet->set_column('D:E', 21);
$worksheet->set_column('E:F', 15);
$worksheet->set_column('F:G', 32);
$celldesc_h = 16.50;
## Writing Data เพิ่มข้อมูลลงใน Cellง
$worksheet->write_blank(A1,$xlscelldesc_header);
$worksheet->write(B1,"ข้อมูลนักศึกษาที่ลงทะเบียน ภาคเรียนที่ $semester ปีการศึกษา $year", $xlscelldesc_header);
$worksheet->write_blank(C1,$xlscelldesc_header);
$worksheet->write_blank(D1,$xlscelldesc_header);
$worksheet->write_blank(E1,$xlscelldesc_header);
$worksheet->write_blank(F1,$xlscelldesc_header);
# กำหนดความสูงของ Cell
$worksheet->set_row(1, $celldesc_h);
$worksheet->set_row(2, $celldesc_h);
$worksheet->set_row(3, $celldesc_h);
$worksheet->set_row(4, $celldesc_h);
$worksheet->set_row(5, $celldesc_h);
$worksheet->write(B4, " รหัสวิชา :", $xlscelldesc_header);
$worksheet->write(D4, " $courseno ", $xlscelldesc_header);
$worksheet->write(B6,"ที่", $xlscelldesc_header);
$worksheet->write(C6,"รหัสนักศึกษา", $xlscelldesc_header);
$worksheet->write(D6,"ชื่อ - นามสกุล", $xlscelldesc_header);
$worksheet->write_blank(E6,$xlscelldesc_header);
$worksheet->write(F6," ", $xlscelldesc_header);
$xlsRow = 7;
# ตรงนี้คือดึงข้อมูลจาก mysql มาใส่ใน Cell
while(list($id,$prename,$name,$sname)=mysql_fetch_row($result)) {
++$i;
$worksheet->set_row($xlsRow, 19.80);
$worksheet->write("B$xlsRow", "$i", $xlsCellDesc);
$worksheet->write("C$xlsRow", "$id", $xlsCellDesc);
$worksheet->write("D$xlsRow", "$prename$name", $xlsCellDesc);
$worksheet->write("E$xlsRow", "$sname", $xlsCellDesc);
$worksheet->write("F$xlsRow", "......................................................................", $xlsCellDesc);
$xlsRow++;
}
# เสร็จแล้วก็ส่งไฟล์ไปยัง Browser ครับแค่นี้ก็เสร็จแล้ว
$workbook->close();
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".basename("ชื่อไฟล์.xls").";");
header("Content-Transfer-Encoding: binary\r\n");
header("Content-Length: ".filesize($fname));
readfile($fname);
unlink($fname);
exit();
?>
6. เพียงเท่านี้ท่านก็สามารถทำ Report ที่ Print ออกมาสวยหรูแถมยังเอาไปใช้คำณวณได้ด้วย Excel
7. สำหรับใครต้องการให้แสดงเป็นรูปแบบใดก็สามารถพลิกแพลงได้ตามใจชอบครับ ลองดูตัวอย่างที่ผมทำไว้ใช้งานจริงได้ที่
http://www3.reg.cmu.ac.th/regist246/pub ... =precourse ให้ลองกดตรงปุ่มดาวน์โหลดดูนะครับ จะมีการสร้าง Report หลายรูปแบบเอาไว้ ลองปริ้นออกมาดูแต่ละแบบก็ได้นะครับจะเห็นข้อแตกต่าง คราวหน้าผมจะมาพูดถึงรูปแบบอื่นๆ อีก
ที่มา : บอร์ดไทยแอดมิน