экспорт данных в excel в codeigniter с использованием ошибки библиотеки php excel

#php #mysql #excel #codeigniter #phpexcel

Вопрос:

я пытаюсь экспортировать данные из моей таблицы в файл excel с помощью библиотеки php excel, мой контроллер выглядит следующим образом:

 public function exportexcel() {
    $this->load->model("excel_import_model");

    $var = $this->excel_import_model->excelexport();
    $this->load->library('excel');

    $object = new PHPExcel();
    $object->setActiveSheetIndex(0);

    $table_columns = array("Name", "Address", "Gender", "Designation", "Age");

    $column = 0;

    foreach($table_columns as $field) {
        $object->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $field);
        $column  ;
    }

    $employee_data = $this->excel_import_model->excelexport();

    $excel_row = 2;

    foreach($employee_data as $row) {
        $object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $row->sendername);
        $object->getActiveSheet()->setCellValueByColumnAndRow(1, $excel_row, $row->sendercity);
        $object->getActiveSheet()->setCellValueByColumnAndRow(2, $excel_row, $row->senderphone);
        $object->getActiveSheet()->setCellValueByColumnAndRow(3, $excel_row, $row->awb);
        $object->getActiveSheet()->setCellValueByColumnAndRow(4, $excel_row, $row->sendermobile);
        $excel_row  ;
    }
    date_default_timezone_set("Asia/Jakarta");
    $this_date = date("Y-m-d");
    $filename='pb_turnamen_data-'.$this_date.'.xls'; //save our workbook as this file name
    header('Content-Type: application/vnd.ms-excel; charset=UTF-8'); //mime type
    header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name
    header('Cache-Control: max-age=0'); //no cache

    $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
    ob_end_clean();
    $objWriter->save('php://output');
}
 

и моя модель выглядит так, как показано ниже.:

 function excelexport()
{
   $this->db->order_by("id", "DESC");
   $query = $this->db->get("consignments");
   return $query->result();
}
 

при нажатии на кнопку файл excel загружается, но файл отображается, как показано на рисунке ниже:
введите описание изображения здесь
введите описание изображения здесь

может кто-нибудь, пожалуйста, сказать мне, что здесь не так, заранее спасибо

Комментарии:

1. Я не вижу continue a break или a switch в этом коде. Пожалуйста, проверьте имя файла и номер строки в ошибке, чтобы убедиться, что вы показываете нам правильный код

2. @RiggsFolly я думаю, что это происходит из папки библиотеки excel

3. Проверьте свою версию PHP и попробуйте composer update

4. @Canh на локальном хосте версия php 5.2

5. PHPExcel устарел, возможно, вам придется обновить электронную таблицу PHP. phpspreadsheet.readthedocs.io/en/latest это решило бы проблему

Ответ №1:

Вы можете использовать следующий код, и он будет загружен в формате .xlsx

 $file_name = time().".xlsx";
$object_writer = PHPExcel_IOFactory::createWriter($object, 'Excel2007');
ob_end_clean();
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename='.$file_name);
$object_writer->save('php://output');