您好,欢迎访问一九零五行业门户网

关于 PHPExcel 的有关问题

关于 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()会不会有影响, 能不能先存到变量里
其它类似信息

推荐信息