关于phpexcel:通过php提取excel中动态变化的数据

 2022-02-13 

Extracting dynamically changing data in excel via php

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

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

谢谢。


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

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

非常感谢博客的作者。


PHPExcel 不支持它.... PHPExcel 在您发出 load() 调用的时间点将工作簿加载到内存中,并且在您更改工作簿时它不能"自动刷新" DDE,因为 DDE 更新是针对磁盘上的工作簿,而不是 PHP 内存中的 PHPEXcel 副本。

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

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

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