【发布时间】:2013-02-22 15:59:39
【问题描述】:
我正在尝试使用 PHPExcel 1.7.8 + CodeIgniter 2.1.3 导出 XLS 文件
我已按照PHPExcel 的所有指示进行操作
但我收到此错误:
无法加载请求的类:
iofactory
这是我的控制器代码:
//expoxt to excel all admin data
function export_excel_admin()
{
//$data['resultsadmin'] = $this->admin_model->get_all_data_admin();
//var_dump($data['resultsadmin']);
//$this->load->view('administrator/export_excel/export_excel_admin', $data);
$query = $this->db->get('tbl_admin');
if(!$query)
return false;
// Starting the PHPExcel library
$this->load->library('excel');
$this->load->library('PHPexcel/IOFactory');
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setTitle("export")->setDescription("none");
$objPHPExcel->setActiveSheetIndex(0);
// Field names in the first row
$fields = $query->list_fields();
$col = 0;
foreach ($fields as $field)
{
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $field);
$col++;
}
// Fetching the table data
$row = 2;
foreach($query->result() as $data)
{
$col = 0;
foreach ($fields as $field)
{
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $data->$field);
$col++;
}
$row++;
}
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5');
// Sending headers to force the user to download the file
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Products_'.date('dMy').'.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
}
啊,我也删除了 IOFactory.php 文件中的“PHPExcel_”部分 这个问题的任何解决方案?
【问题讨论】:
-
您是否也修改了 PHPExcel 自动加载器?这样它就知道 IOFactory 实际上是 PHPExcel 的一部分?就我个人而言,我不会遵循该建议来更改 PHPExcel 类名。但将其设置为在供应商空间中正确使用自动加载器
-
@MarkBaker:不,我刚刚删除了 IOFactory.php 中的“PHPExcel_”部分,但实际上即使我不删除“PHPExcel_”部分,问题仍然存在..
-
我发现很难提供帮助...我不在任何框架中使用 PHPExcel,但 PHPExcel 自动加载器应该作为完全符合 SPL 的自动加载器与任何框架一起工作,无需更改类名或任何方式的 PHPExcel 代码。 ahowto.net/php/… 可能会提供将 PHPExcel 集成到 Codeigniter 的替代方法
标签: php codeigniter phpexcel