php - 使用 PHP 解析重度格式化的 excel 文档时遇到问题

标签 php phpexcel

我知道已经有很多与此类似的问题(我已经阅读了其中的大部分),但我仍然没有找到解决方案,所以我想我会问自己的问题并具体说明。

好吧,过去两天我一直在研究并尝试在 php 中解析 Excel (.xlsx) 电子表格。我试过使用 PHPExcel但是,库在尝试将电子表格加载到内存中时超时。电子表格不是很大,只有 240kb,但它确实有 40 多个工作表,每个工作表都经过严格格式化(即单元格颜色、字体大小/颜色等)。因为我不需要任何格式,所以我尝试了 $objReader->setReadDataOnly(true); 以忽略它,但在尝试读取文件时它仍然超时。

所以我的下一步是尝试只加载我实际需要使用的最后几个工作表,$objReader->setLoadSheetsOnly(array(42,43,44,45));成功了,但现在的问题是最后一张表几乎完全是公式,这些公式汇总并读取了之前工作表中的数据。由于我为了加载文档而排除了那些较早的工作表,因此我无法在检索每个单元格的值时使用 $cell->getCalculatedValue();,从而使其他一切都过时了。

所以我的问题是,我还能做些什么来加载和阅读这个 Excel 电子表格吗?

我应该尝试使用另一个库吗?或者我应该尝试一种完全不同的方法,因为我的最终目标是能够将部分数据上传到数据库?

Here是指向我正在使用的特定电子表格的链接。

感谢您花时间阅读本文并感谢您提供的任何帮助。

最佳答案

好吧,我明白了为什么要花这么长时间,部分原因可能是我使用的是过时版本的 PHPExcel,但我相信真正的罪魁祸首是我在之前的项目中启用了 XDebug。因为一旦我禁用该脚本,该脚本就可以以 1.5001 秒的速度加载工作簿并使用 17.5 MB 的内存。感谢大家的帮助,这让我找到了正确的方向。

关于php - 使用 PHP 解析重度格式化的 excel 文档时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18050988/

相关文章:

php - 通过 PHPExcel 读取 .xls 文件会抛出 fatal error : allowed memory size. .. 即使使用 block 读取器也是如此

php - 如何在类之外显示来自数据库的数据

php - 在Zend Framework中选择上个月的所有记录?

PHP 相对路径 : can I configure it?

php - 使用 PHP 在 MySQL 数据库上实现编辑和删除按钮

php - 是否可以使用 PHPExcel 库导入和导出大小为 70MB 的 excel 文件?

PHP session 上传进度为空

php - 使用 PHPExcel 导入时将表列与数据映射

mysql - CodeIgniter PHPExcel导出到excel出现16位varchar数据类型错误

php - 使用php读取.xlsx文件并写入数据库