การส่งข้อมูลออกเป็นไฟล์ Excel
1. สร้างไฟล์ Excel.php ไว้ที่ application/libraries/ ซึ่งจะเรียกไลบรารี่ที่เราดาวน์โหลดเก็บไว้ใน application/third_party มาใช้อีกทีหนึ่ง (ดาวน์โหลดไลบรารี่ที่เกี่ยวข้องได้ที่ https://github.com/sunzandesign/PHP_CI_MANIA_Libraries)
2. ในส่วนของ Controller ให้โหลดไลบรารี่ที่สร้างไว้มาใช้งาน
3. สร้างลิงค์เพื่อเรียกไปยังหน้า Controller ที่เตรียมไว้สำหรับ Export ข้อมูลเป็นไฟล์ Excel ในที่นี้จะสร้างไปที่หน้าค้นหาและแสดงรายการ list_view.php
4. เมื่อคลิกปุ่ม Excel ก็จะเปิดไปที่หน้า Controller ที่เตรียมไว้ และเมื่อทำงานปกติก็จะมีป๊อบอัพดาวน์โหลดไฟล์แสดงขึ้นมา
5. เมื่อดาวน์โหลด/เปิดไฟล์ขึ้นมา จะพบข้อมูลตามที่กำหนดไว้ใน Controller
1. สร้างไฟล์ Excel.php ไว้ที่ application/libraries/ ซึ่งจะเรียกไลบรารี่ที่เราดาวน์โหลดเก็บไว้ใน application/third_party มาใช้อีกทีหนึ่ง (ดาวน์โหลดไลบรารี่ที่เกี่ยวข้องได้ที่ https://github.com/sunzandesign/PHP_CI_MANIA_Libraries)
<?php
if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}
require_once APPPATH."/third_party/PHPExcel.php";
class Excel extends PHPExcel{
public function __construct(){
parent::__construct();
}
}
2. ในส่วนของ Controller ให้โหลดไลบรารี่ที่สร้างไว้มาใช้งาน
public function export_excel()
{
// load excel library
$this->load->library('Excel');
$results = $this->Student->read(0, 1000);//1000 คือจำนวนข้อมูลที่ต้องการสูงสุด
$data_lists = $this->setDataListFormat($results['list_data'], 0);
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
// set Header
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'รหัสประจำตัว');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', 'ชื่อ-นามสกุล');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'เพศ');
// set header bold
$objPHPExcel->getActiveSheet()->getStyle("A1:C1")->getFont()->setBold( true );
// set Row
$rowCount = 2;
foreach ($data_lists as $row) {
$objPHPExcel->getActiveSheet()
->setCellValueExplicit('A' . $rowCount, $row['student_code'], PHPExcel_Cell_DataType::TYPE_STRING);
$objPHPExcel->getActiveSheet()->SetCellValue('B' . $rowCount, $row['preview_prefix_name'].$row['firstname'].' '.$row['lastname']);
$objPHPExcel->getActiveSheet()->SetCellValue('C' . $rowCount, $row['preview_sex']);
$rowCount++;
}
// auto size
foreach(range('A','C') as $columnID) {
$objPHPExcel->getActiveSheet()->getColumnDimension($columnID)
->setAutoSize(true);
}
$filename = "student_". date("Y-m-d-H-i-s").".xlsx";
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
}
3. สร้างลิงค์เพื่อเรียกไปยังหน้า Controller ที่เตรียมไว้สำหรับ Export ข้อมูลเป็นไฟล์ Excel ในที่นี้จะสร้างไปที่หน้าค้นหาและแสดงรายการ list_view.php
<div class="col-sm-12 col-md-12">
<div class="pull-right text-right">
<a href="{page_url}/print_pdf" target="_blank" class="btn btn-danger btn-lg" data-toggle="tooltip" title="พิมพ์ข้อมูล">
<i class="fas fa-file-excel"></i></span> PDF
</a>
<a href="{page_url}/export_excel" class="btn btn-success btn-lg" data-toggle="tooltip" title="ส่งออกข้อมูล">
<i class="fas fa-file-excel"></i></span> Excel
</a>
</div>
</div>
4. เมื่อคลิกปุ่ม Excel ก็จะเปิดไปที่หน้า Controller ที่เตรียมไว้ และเมื่อทำงานปกติก็จะมีป๊อบอัพดาวน์โหลดไฟล์แสดงขึ้นมา
5. เมื่อดาวน์โหลด/เปิดไฟล์ขึ้นมา จะพบข้อมูลตามที่กำหนดไว้ใน Controller
PHP CI MANIA - PHP Code Generator
โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ความคิดเห็น
แสดงความคิดเห็น