php - PHP 使用 PHPExcel/PhpSpreadsheet 读取第 3 方动态 excel 文件
问题描述
我有一个由第 3 方创建的动态 Excel 文件。该文件连接到第 3 方服务器,并且每秒刷新一次数据。
我正在尝试从中提取相关数据,并尝试使用PHPExcel和Phpspreadsheet。我之前使用过 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/
解决方案
推荐阅读
- jquery - JQuery numbered ids
- microsoft-graph-api - graph.windows 和 graph.Microsoft 有什么区别
- php - php 二维数组根据key的值进行排序分组
- node.js - 在同一个 Azure Web 应用中部署 Angular 6 应用和 Web API
- css - 我需要与 powerpoint 365 中相同的 CSS 反弹效果
- angularjs - AngularJS Spring Social Facebook CORS 问题
- nsjsonserialization - 我们可以用 Codable 代替 JSonSerialization 来序列化吗?与 jsonserializer 相比,codable 的优缺点是什么
- postgresql - 从 JDBC Client 远程查询时,有时 postgres 不返回记录
- html - 如何将包含许多图像的 div 设置为背景?
- apache-camel - 将消息从码头发送到队列时出错(使用骆驼)