首页 > 解决方案 > 使用 PHPExcel 和 Codeigniter 导出 XLS 时出现 ID 问题

问题描述

我在使用PHPExceland时无法导出 XLS 文件,导出时Codeigniter没有错误,但查询是LEFT JOIN另一个表,这是 postgresql 查询

SELECT * 
FROM consultas 
LEFT JOIN consulta_respuestas ON consultas."ID"= consulta_respuestas.consultaid 
LEFT JOIN usuarios ON consultas.responsable = usuarios."ID"

查询工作得很好,问题是在导出文件时 ID 列来自 usuarios 表,我希望它来自咨询表。

有没有办法忽略 usuarios 表中的 ID?

这是导出代码:

class Excel_export extends CI_Controller {

 function index()
 {
  $this->load->model("excel_export_model");
  $data["employee_data"] = $this->excel_export_model->fetch_data();
  $this->load->view("excel_export_view", $data);
 }

 function action()
 {
  $this->load->model("excel_export_model");
  $this->load->library("excel");
  $object = new PHPExcel();

  $object->setActiveSheetIndex(0);

  $table_columns = array("ID", "Fecha Consulta", "Nombre", "Consulta", "País", "Ciudad", "Escolaridad", "Ocupación", "Vía", "Responsable", "Respuesta", "Fecha Respuesta", "Palabra Clave");

  $column = 0;

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

  $employee_data = $this->excel_export_model->fetch_data();

  $excel_row = 2;

  foreach($employee_data as $row)
  {
   $object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $row->ID);
   $object->getActiveSheet()->setCellValueByColumnAndRow(1, $excel_row, $row->consulta_fecha);
   $object->getActiveSheet()->setCellValueByColumnAndRow(2, $excel_row, $row->nombre);
   $object->getActiveSheet()->setCellValueByColumnAndRow(3, $excel_row, $row->consulta);
   $object->getActiveSheet()->setCellValueByColumnAndRow(4, $excel_row, $row->pais);
   $object->getActiveSheet()->setCellValueByColumnAndRow(5, $excel_row, $row->ciudad);
   $object->getActiveSheet()->setCellValueByColumnAndRow(6, $excel_row, $row->escolaridad);
   $object->getActiveSheet()->setCellValueByColumnAndRow(7, $excel_row, $row->ocupacion);
   $object->getActiveSheet()->setCellValueByColumnAndRow(8, $excel_row, $row->via);
   $object->getActiveSheet()->setCellValueByColumnAndRow(9, $excel_row, $row->username);
   $object->getActiveSheet()->setCellValueByColumnAndRow(10, $excel_row, $row->respuesta);
   $object->getActiveSheet()->setCellValueByColumnAndRow(11, $excel_row, $row->cierre_consulta);
   $object->getActiveSheet()->setCellValueByColumnAndRow(12, $excel_row, $row->palabraclave);
   $excel_row++;
  }

  $object_writer = PHPExcel_IOFactory::createWriter($object, 'Excel5');
  header('Content-Type: application/vnd.ms-excel');
  header('Content-Disposition: attachment;filename="Reporte.xls"');
  $object_writer->save('php://output');
 }

标签: phppostgresqlcodeigniterphpexcel

解决方案


推荐阅读