php - 使用 PHP 读取大型 .xls 文件
问题描述
目前我正在做大量的文件/数据接口,有些文件是 XLS 格式,我需要将它们规范化为 csv(所以基本上,将 XLS 转换为 CSV 文件)
问题是 PHPExcel(和类似的库)一次加载整个工作表数据,从而耗尽了内存。
到目前为止,我尝试了各种库(同时谈判将数据保存在 csv 中,尽管到目前为止还没有运气)
我正在对各种大文件大小运行测试,我的内存分配在我的脚本运行之前和之后使用 ini_set 等进行了正确设置。
请问有没有办法可以逐行或分块读取xls(如fgetcsv或fread)?
我正在对此进行编程,因此它可以与任何文件大小一起使用(即使运行需要很长时间),因为这是一个完全自动化的系统。
PS:我检查了这篇文章和其他各种已经 阅读 PHP 中的 Excel 文件
解决方案
可能的方法...
- 从其他语言获得帮助。例如,找到一个 Python excel 库并使用它。然后从 PHP 调用 Python。
- 修改那些 Excel 阅读器的源代码
- 使用命令行工具将 excel 转换为 csv,例如 Pandoc,并在 PHP 中使用 csv
- 由于 xls 文件只不过是一个 zip 文件,因此也许可以将其解压缩并找到值
- 首先通过非PHP解决方案将一个xls分解成许多小的xls文件,例如excel中的VBA,然后读取它们。
推荐阅读
- unit-testing - API 中的测试覆盖率
- javascript - HTML 模式未打开
- ruby-on-rails - 在 Rails 中实现 method_missing
- excel - 在 VBA 中提高 For Loop 和 With 语句的速度
- javascript - add 不是函数
- python-3.x - 为什么它不转一圈?以及如何解决?
- css - 使用css将左右元素放在同一行
- javascript - ChartJS - 当我从 API 获取数据以获取新数据时更新不起作用
- java - 检索实例的 ID,就像 Eclipse 的调试器一样
- javascript - 如果将 OnChange() 作为 prop 传递,它可以在 ReactJs 上的父组件中接收多个函数吗?