使用 PHP 读取大型 .xls 文件
Reading large .xls file with PHP
目前我正在做一个files/data的海量接口,一些文件是XLS格式,我需要将它们规范化为csv(所以基本上,将XLS转换为CSV文件)
问题是 PHPExcel(和类似的库)一次加载整个 sheet 数据从而耗尽内存。
到目前为止,我尝试了各种库(同时协商将数据保存在 csv 中,但到目前为止运气不好)
我正在 运行 对各种大文件大小进行测试,我的内存分配在我的脚本 运行s 使用 ini_set 等之前和之后正确设置
请问有没有办法让我逐行或分块(如 fgetcsv 或 fread)读取 xls?
我正在对此进行编程,因此它可以处理任何文件大小(即使它需要很长时间才能 运行),因为这是一个全自动系统。
PS:我已经检查了这个 post 和其他各种
Reading an Excel file in PHP
可能的方法...
- 从其他语言获得帮助。例如找到一个 Python excel 库并使用它。然后从 PHP.
调用 Python
- 修改那些Excel位读者的源代码
- 使用命令行工具将 excel 转换为 csv,例如也许是 Pandoc,并在 PHP
中使用 csv
- 由于 xls 文件只是一个 zip 文件,也许可以解压缩并找到值
- 首先通过non-PHP解决方案将一个xls分解成许多小的xls文件,例如VBA in excel,然后逐一阅读。
目前我正在做一个files/data的海量接口,一些文件是XLS格式,我需要将它们规范化为csv(所以基本上,将XLS转换为CSV文件)
问题是 PHPExcel(和类似的库)一次加载整个 sheet 数据从而耗尽内存。
到目前为止,我尝试了各种库(同时协商将数据保存在 csv 中,但到目前为止运气不好)
我正在 运行 对各种大文件大小进行测试,我的内存分配在我的脚本 运行s 使用 ini_set 等之前和之后正确设置
请问有没有办法让我逐行或分块(如 fgetcsv 或 fread)读取 xls?
我正在对此进行编程,因此它可以处理任何文件大小(即使它需要很长时间才能 运行),因为这是一个全自动系统。
PS:我已经检查了这个 post 和其他各种 Reading an Excel file in PHP
可能的方法...
- 从其他语言获得帮助。例如找到一个 Python excel 库并使用它。然后从 PHP. 调用 Python
- 修改那些Excel位读者的源代码
- 使用命令行工具将 excel 转换为 csv,例如也许是 Pandoc,并在 PHP 中使用 csv
- 由于 xls 文件只是一个 zip 文件,也许可以解压缩并找到值
- 首先通过non-PHP解决方案将一个xls分解成许多小的xls文件,例如VBA in excel,然后逐一阅读。