Export Excel load template có sẵn - cách thêm PHPExcel vào Codeigniter 3

Lượt xem: 6092

Ở 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