2

我有一个打开的 excel 表,另一个程序通过 DDE 不断更新它。我希望有一个 php 脚本来访问这个 excel 表中的一些数据。我曾尝试使用 PHPExcel,但我所做的更改(例如通过 setCellValue)似乎无法立即反映在打开的 Excel 表中。同样,如果我更改单元格的值(没有将工作表保存到文件系统),则单元格的新值无法通过 getValue() 获得。

phpExcel 是否支持此功能?如果是这样,有人可以指点我说明如何做到这一点的文档吗?或者,是否有另一种方法(例如,不使用 phpExcel)来做到这一点?

谢谢。

4

2 回答 2

3

我能够使用rarified 博客网页上显示的方法来做到这一点

这对我有用,既可以将单元格值从 php“推送”到 excel,也可以将修改后的值(不保存文件)从 excel 到 perl。这个网站还有一个漂亮的基于 ajax 的功能,可以使用 excel 中的最新值自动刷新我的网页。

非常感谢博客的作者。

于 2012-01-31T07:03:11.357 回答
1

PHPExcel 不支持它.... PHPExcel 在您发出 load() 调用时将工作簿加载到内存中,此时只要 DDE 更改工作簿,它就无法“自动刷新”,因为DDE 更新是针对磁盘上的工作簿,而不是针对 PHP 内存中的 PHPEXcel 副本。

您需要不断地加载和重新加载以获取对基础文件的更改。

同样,如果您在 PHPExcel 中更改工作簿,除非您明确地 save(),否则它不会将该更改写回磁盘上的文件,因此您的 DDE 程序将看不到更改。

我不知道您是否甚至可以使用 MS Excel 本身来执行此操作...如果您使用 MS Excel 本身加载工作簿,则您正在从磁盘加载到内存中,并且如果当时有其他任何东西正在访问该工作簿,您发现您已以只读模式加载它,并且(据我所知)它不会在 DDE 程序更新原始版本时自动刷新。如果有任何东西可以按照您需要的方式使用,它很可能是 COM,但我不会对您抱太大希望。

于 2012-01-30T10:36:33.623 回答