首页 > 解决方案 > PHP 使用 PHPExcel/PhpSpreadsheet 读取第 3 方动态 excel 文件

问题描述

我有一个由第 3 方创建的动态 Excel 文件。该文件连接到第 3 方服务器,并且每秒刷新一次数据。

我正在尝试从中提取相关数据,并尝试使用PHPExcelPhpspreadsheet。我之前使用过 PHPExcel,它在静态文件上非常适合我,但在这种情况下,我似乎无法获得所需的结果。

当我尝试使用PHPExcel提取数据时:

$worksheet->getCellByColumnAndRow(6,4)->getValue() ;
$worksheet->getCellByColumnAndRow(6,4)->getCalculatedValue() ;
$worksheet->getCellByColumnAndRow(6,4)->getFormattedValue() ;

我得到了错误:

错误:PHPExcel_Calculation_Exception:公式错误:意外,

还尝试使用:

$worksheet->getCellByColumnAndRow(6,4)->getOldCalculatedValue() ;

该方法返回数据,但我没有得到当前数据,我得到的东西看起来像默认数据,无论我在 excel 文件中实际看到什么,这些数据都不会更新并保持不变。

我尝试切换到Phpspreadsheet我得到了与getOldCalculatedValue()使用此方法相同的结果: $data->sheets[0]['cells'][4][5]

我相信如果我能找到一种方法来复制带有值(无公式)的 excel 文件,我可以绕过我面临的问题(因为它就像使用静态文件一样),但我想避免这种情况,因为我需要我的脚本每秒提取数据,并且我希望尽可能减少所需的操作。

编辑

我搜索了很多,现在才发现这个链接同样的问题: Extracting dynamicly changed data in excel via php

它基本上说它不能由 PHPExcel 完成,因为为此必须保存文件以获取当前数据。所以选择是创建它的副本并保存它。此外,他们参考了这个链接: https ://marcelwijayacc.wordpress.com/2011/09/22/obtaining-live-data-feed-from-excel-or-any-windows-object-using-php/

标签: phpexcelphpexcelphpspreadsheet

解决方案


推荐阅读