Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
利用php提取excel中动态变化的数据_Php_Phpexcel_Dde - Fatal编程技术网

利用php提取excel中动态变化的数据

利用php提取excel中动态变化的数据,php,phpexcel,dde,Php,Phpexcel,Dde,我有一个打开的excel工作表,另一个程序通过DDE不断更新它。我希望有一个php脚本来访问这个excel表中的一些数据。我曾尝试使用PHPExcel,但似乎无法将我所做的更改(例如通过setCellValue)立即反映在打开的excel工作表中。类似地,如果我更改单元格的值(不将工作表保存到文件系统),则该单元格的新值无法通过getValue()获得 phpExcel是否支持此功能?如果是这样的话,有人能给我指一下说明如何做到这一点的文档吗?或者,是否有其他方法(例如,不使用phpExcel)

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

phpExcel是否支持此功能?如果是这样的话,有人能给我指一下说明如何做到这一点的文档吗?或者,是否有其他方法(例如,不使用phpExcel)来执行此操作


谢谢。

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

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

同样,如果在PHPExcel中更改工作簿,除非显式保存(),否则它不会将更改写回磁盘上的文件,因此DDE程序将看不到更改


我不知道你是否能用MS Excel自己做到这一点。。。如果您使用MS Excel本身加载工作簿,则是从磁盘加载到内存中,如果当时有任何其他内容正在访问该工作簿,则会发现您已以只读模式加载该工作簿,并且(据我所知),每当DDE程序更新原始版本时,它不会自动刷新。如果有任何东西可以按您需要的方式使用,它可能是COM,但我不会让您抱有太多希望。

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

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

同样,如果在PHPExcel中更改工作簿,除非显式保存(),否则它不会将更改写回磁盘上的文件,因此DDE程序将看不到更改


我不知道你是否能用MS Excel自己做到这一点。。。如果您使用MS Excel本身加载工作簿,则是从磁盘加载到内存中,如果当时有任何其他内容正在访问该工作簿,则会发现您已以只读模式加载该工作簿,并且(据我所知),每当DDE程序更新原始版本时,它不会自动刷新。如果有任何东西可以按您需要的方式使用,它可能是COM,但我不会让您抱有太多希望。

我可以使用中显示的方法来实现这一点

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


非常感谢该博客的作者。

我能够使用上所示的方法完成这项工作

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


非常感谢博客作者。

您需要立即写入所做的任何更改,然后从磁盘重新加载文件。这很可能会破坏一切。Excel不是设计成这样运行的-它没有设计任何接近并发性的支持-您需要使用适当的数据库引擎。我怀疑phpExcel,但您可以尝试从PHP通过COM或DDE访问该文件。您需要立即写入所做的任何更改,然后从磁盘重新加载该文件。这很可能会破坏一切。Excel不是设计成这样运行的-它没有设计任何接近并发性的支持-您需要使用适当的数据库引擎。我怀疑phpExcel,但您可以尝试从PHP通过COM或DDE访问该文件。