【发布时间】:2014-10-08 01:42:31
【问题描述】:
我的 PHP 应用需要读取用户上传的任意大小的 Excel 文件而不丢失数据。
纯 PHP 库只适用于非常小的文件。
ODBC 似乎是显而易见的选择,但我对 Microsoft 驱动程序(我发现的唯一驱动程序)的测试表明它们非常不可靠(并且文档记录不充分)。
MSDN 提到了无穷无尽的附加首字母缩略词(MDAC、OleDB、ADODB...),但最终,它们似乎都是 ODBC 驱动程序之上的包装器,存在所有缺陷。
在 Windows 服务器上从 PHP 读取 Microsoft Excel 文件的行业标准是什么?
【问题讨论】:
-
另一位高级代表给出了这个答案stackoverflow.com/a/563679
-
这是另一个paggard.com/projects/xls.reader,显然是由 MS Excel 生成的。我引用:“XLS Reader 是一个 PHP 类,它可以仅使用 PHP 读取二进制 XLS 文件(由 MS Excel 生成)。这个类不需要任何额外的 PHP 模块或 COM 对象,并且可以运行所有操作无论是否安装了 MS Excel,系统都没有任何依赖。”
-
感谢您的指点,但我已经广泛探索了这条道路。问题是我确实有一台 Windows 计算机:我可以安装额外的 PHP 模块。或者调用 COM 对象。在任何事情上。当某些本机软件可以在 10 秒内读取文件时,我不需要等待 30 分钟,直到 PHP 耗尽系统 RAM 并崩溃。
-
不客气,我相信你已经探索了这条路;就像我过去也研究过一样(实际上花了 2-3 天),但没有找到其他有效地完成这项工作的方法。据我所知,本身似乎没有行业标准。我搜索了 IBM 的开发人员部分,确实找到了一些,但他们大多提到将文件保存为 XML 电子表格。
-
@ÁlvaroG.Vicario:您应该已经意识到这一点,但请考虑要求用户创建 CSV 文件可能会造成一系列新的噩梦 ;-) 所以即时转换可能应该是首选。