在 Windows 上从 PHP 读取 Microsoft Excel 文件

Posted

技术标签:

【中文标题】在 Windows 上从 PHP 读取 Microsoft Excel 文件【英文标题】:Read Microsoft Excel files from PHP on Windows 【发布时间】:2014-10-08 01:42:31 【问题描述】:

我的 php 应用需要读取用户上传的任意大小的 Excel 文件而不丢失数据。

纯 PHP 库只适用于非常小的文件。

ODBC 似乎是显而易见的选择,但我对 Microsoft 驱动程序(我发现的唯一驱动程序)的测试表明它们非常不可靠(并且文档记录不充分)。

MSDN 提到了无穷无尽的附加首字母缩略词(MDAC、OleDB、ADODB...),但最终,它们似乎都是 ODBC 驱动程序之上的包装器,存在所有缺陷。

在 Windows 服务器上从 PHP 读取 Microsoft Excel 文件的行业标准是什么?

【问题讨论】:

另一位高级代表给出了这个答案***.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 文件可能会造成一系列新的噩梦 ;-) 所以即时转换可能应该是首选。 【参考方案1】:

除非被证明是错误的,否则我敢说,在面临从 PHP 读取 Excel 数据的任务时,运行 Windows 不会提供任何特别的竞争优势。没有任何工具可以快速可靠地直接访问数据,因此您必须使用在任何其他操作系统上使用的相同技巧。

到 CSV 的透明转换是一个有趣的解决方法,但是,虽然它可以用 Excel 本身完成(使用 COM 到 instantiate an Application.Excel object,假设你能负担得起 Microsoft Office 许可证)有@987654323 @。

暂时回答这个问题:可能根本没有行业标准。

【讨论】:

以上是关于在 Windows 上从 PHP 读取 Microsoft Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

QProcess -> 在 Linux 上从 sftp 读取标准输出

在 Linux 上从 PHP 连接到 MS Access 数据库

如何在 Windows 8 现代应用程序上从视频流中抓取帧?

从 t1.micro 迁移到 t2.micro 亚马逊 AWS

如何在 Android 上从蓝牙的 InputStream 中读取

fgets 无法在 Ubuntu 20.04 上从管道读取两次