【问题标题】:Reading large .xls file with PHP使用 PHP 读取大型 .xls 文件
【发布时间】:2019-10-21 22:48:58
【问题描述】:

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

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

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

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

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

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

PS:我已经检查了这篇文章和其他各种帖子 Reading an Excel file in PHP

【问题讨论】:

    标签: php phpexcel php-5.6 phpexcelreader


    【解决方案1】:

    可能的方法...

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

    【讨论】:

    • 感谢您的回复。以防其他人将来会对此进行反馈....第2点)我正在检查PHPExcel的->加载方法...很有趣..第3点似乎是现阶段最可行的选择+我敢肯定它会更快地转换并完成工作,试图避免它只是因为我希望解决方案完全在 PHP 中......第 4 点)我确实解压缩了 xls 并且格式不容易解析,如果它是一个 xlsx,解压缩会给你一个 xls 文件... 第 5 点)如果我有能力在工作站上使用非 php,我宁愿保存为 csv(无论如何感谢您的提示!)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 2013-07-10
    • 2019-02-18
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多