เรื่องของเรื่อง ถูกมอบหมายให้ทำ Report ที่สามารถ Export ออกมาเปิดดูใน Excel ได้ ไอ้คนคิดน้อยอย่างผมก็ไม่คิดมากครับไปโหลด PHPExcel มาใช้เลยทำอยู่นาน ปรากฏว่า Project Manager มาดูเค้าก็แนะนำว่า ใช้ Library ยากไปเปลี่ยนๆ มาใช้ฟังก์ชันง่ายๆ ตัวนี้ดู
วันนี้เลยอยากจะมาแนะนำการทำ Report ออกมาเป็นไฟล์ CSV แบบง่ายๆ โดยไม่พึ่ง Library ใดๆ ผ่านฟังก์ชัน fputcsv() กันครับ ลองดูๆ
ตัวอย่างที่ 1 แบบง่ายๆ
$list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); }ตัวอย่างที่ 2 แบบดาวน์โหลดไฟล์
// ทำให้เกิด Force Download ทันทีที่เข้ามาในหน้าที่เขียนโค้ดไว้ header( 'Content-Type: text/csv' ); header( 'Content-Disposition: attachment;filename='.$filename); $fp = fopen('php://output', 'w'); $list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); }
ซึ่งก็ไม่น่าเชื่อนะครับว่ามันจะง่ายอะไรแบบนี้ ถ้าใช้ Library ผมต้องไปนั่ง ตั้งค่าคอลัมน์อีกหลายบรรทัดเลยทีเดียว แนะนำว่าวิธีเป็นการออกรายงานแบบง่ายนะครับ ถ้าต้องการรูปแบบที่สวยงามก็ต้องพึ่ง Library อยู่ดี :D วันนี้ขอตัวก่อนครับ
แหล่งข้อมูล PHPManual
ความคิดเห็น
แสดงความคิดเห็น