使用PHP读取大型.xls文件

时间:2019-06-06 12:02:50

标签: php phpexcel php-5.6 phpexcelreader

此刻,我正在处理文件/数据的大量接口,并且某些文件是XLS格式,我需要将它们标准化为csv(因此,基本上将XLS转换为CSV文件)

问题是PHPExcel(和类似的库)立即加载整个工作表数据,从而耗尽了内存。

到目前为止,我尝试了各种库(与此同时,尽管到目前为止还算不上运气,但正在协商将数据保存在csv中)

我正在各种大型文件上运行测试,使用ini_set等在脚本运行之前和之后都正确设置了内存分配。

请问有没有一种方法可以逐行或按块(例如fgetcsv或fread)读取xls?

我正在对此进行编程,因此它可以与任何文件大小一起使用(即使需要花一些时间才能运行),因为这是一个全自动系统。

PS:我已经查看了此信息以及其他各种信息 Reading an Excel file in PHP

感谢和问候, 奥利弗

1 个答案:

答案 0 :(得分:2)

可能的方法...

  1. 获得其他语言的帮助。例如找到一个Python excel库并使用它。然后从PHP调用Python。
  2. 修改这些Excel阅读器的源代码
  3. 使用命令行工具将excel转换为csv,例如可能是Pandoc,并在PHP中使用csv
  4. 由于xls文件不过是一个zip文件,因此也许可以将其解压缩并找到值
  5. 首先通过非PHP解决方案将一个xls分解为许多小的xls文件,例如excel中的VBA,然后阅读它们中的每一个。

希望有帮助!