我正在使用PHPExcel 1.7.9版。
这是我的PHP代码:
$temp_name = $_FILES['upload']['tmp_name'];
$fname = $_FILES['upload']['name'];
$transfer = move_uploaded_file($temp_name,TEMP_DIR.$fname);
$file_location = TEMP_DIR.$fname;
$inputFileType = PHPExcel_IOFactory::identify($file_location);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file_location);
对于上面的每行代码我回显生成输出所花费的时间
启动页面加载0.0272秒
上传文件Pageload 0.0408秒
在0.0612秒内识别文件页面加载量
在0.0613秒内创建Reader Pageload
在0.0613秒内设置Read Data OnlyPageload
文件读取页面加载时间为17.3884秒
我的问题是,为什么
$objPHPExcel = $objReader->load($file_location);
需要17.3884秒才能加载?
其他信息:
答案 0 :(得分:1)
在将大文件写入光盘时,phpexcel需要大量内存的原因相同......
excel文档中存在大量数据,包括内容,公式,条件标记,标记,引用,单元格大小等...
对于每个细胞,必须正确分析,解释,与phpexcel中的相应值匹配。
这是转换过程中耗费时间和内存最多的。
您有32 x 184列数据= 5888个单元格,每个表格单元格需要解释= 0.002953秒,表格单元格为2.9毫秒。
考虑到所有数据处理和变量事件,我发现它非常快。
如果你真的想要速度,你需要编写自己的c(++)库并将其加载到php中,那么你就可以获得真正的速度提升。