欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于 PHPExcel 的有关问题

程序员文章站 2024-01-21 11:52:04
...
关于 PHPExcel 的问题
数据库有600多条数据。
我用 PHPExcel 导出来要40多秒。
而我自己写个程序导出.csv的文件,却只要不到5秒···

请教一下大家为什么?
PHPExcel版本1.7.3
代码如下:

static public function exportDataModel($array_value, $result_data)
{
Export::head($array_value['export_head']);
$objPHPExcel = new PHPExcel();
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
$objPHPExcel->getProperties()->setCreator($array_value['PropertiesCreator']);
$objPHPExcel->getProperties()->setTitle($array_value['PropertiesTitle']);
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle($array_value['ActiveSheetTitle']);

$column_name = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$arr_ActiveSheetCellValue = $array_value['ActiveSheetCellValue'] ;

for($i = 0; $i {
$objPHPExcel->getActiveSheet()->setCellValue($column_name[$i].'1', $arr_ActiveSheetCellValue[$i]);
}
$row = 2;
foreach ($result_data as $result_d)
{
$arr_ActiveSheetCellValueData = $array_value['ActiveSheetCellValueData'] ;
for($j = 0; $j {
$objPHPExcel->getActiveSheet()->setCellValue($column_name[$j].$row, $result_d[$arr_ActiveSheetCellValueData[$j]]);
}
$row++;
}
$objWriter->save('php://output');
}

------解决方案--------------------
PHPExcel是一个很强大的处理Excel的PHP开源类,但是很大的一个问题就是它占用内存太大,官网上是这么说的:PHPExcel平均下来使用1k/单元格的内存,因此大的文档会导致内存消耗的也很快。而你导出的csv文件用的是PHP的内置函数。所以相比下来,会相差很多!
------解决方案--------------------
在循环里老是$objPHPExcel->getActiveSheet()会不会有影响, 能不能先存到变量里
关于 PHPExcel 的有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 关于 PHPExcel 的有关问题
  • 专题推荐