首页 > 解决方案 > 使用 PHP 读取大型 .xls 文件

问题描述

目前我正在做大量的文件/数据接口,有些文件是 XLS 格式,我需要将它们规范化为 csv(所以基本上,将 XLS 转换为 CSV 文件)

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

到目前为止,我尝试了各种库(同时谈判将数据保存在 csv 中,尽管到目前为止还没有运气)

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

请问有没有办法可以逐行或分块读取xls(如fgetcsv或fread)?

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

PS:我检查了这篇文章和其他各种已经 阅读 PHP 中的 Excel 文件

标签: phpphpexcelphp-5.6phpexcelreader

解决方案


可能的方法...

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

推荐阅读