Export Excel load template có sẵn - cách thêm PHPExcel vào Codeigniter 3
Lượt xem: 6066
Ở serial tạo ứng dụng CRUD với codeigniter 3 ở bài này dandev sẽ cùng cách bạn sử dụng lại project "codeigniter3demo" để tiếp tục phát triển chức năng export excel sử dụng teamplate có sẵn.
Lưu ý:
- Sử dụng PHP 7.3
- Thư viện PHPExcel 1.8
File teamplate các bạn có thể tạo tùy ý file template trong video nó cũng khá là đơn giản nên dandev xin phép không đính kèm theo. Phần source xử lý trong ItemController các bạn nhé
public function excel() {
$items = $this->itemCRUD->get_items();
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load(APPPATH.'/excels/template.xlsx');
$date = date('Y-m-d', time());
// log_message('error', $date);
// $objPHPExcel->getActiveSheet()->setCellValue('B2', PHPExcel_Calculation_DateTime::DATEVALUE($date));
if($items) {
$row = 4;
foreach($items as $item) {
$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $item->title);
$objPHPExcel->getActiveSheet()->setCellValue('b'.$row, $item->description);
$row ++;
}
}
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="exports.xlsx"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
}
Video giải thích