【问题标题】:How to fetch text from single cell excel sheet published on Microsoft OneDrive?如何从 Microsoft OneDrive 上发布的单个单元格 Excel 表中获取文本?
【发布时间】:2015-02-25 04:43:55
【问题描述】:

以下链接显示我 OneDrive 上托管的 Microsoft Excel 工作表中的单个单元格值 (1,250.21):

https://onedrive.live.com/embed?cid=1675CEC70987A1BC&resid=1675CEC70987A1BC%217430&authkey=ADt10TUFiPzFu90&em=2&wdAllowInteractivity=False&Item=%27AC-QR%27!K1&wdHideGridlines=True

http://goo.gl/FXbaMF

现在,我尝试通过标准 cUrl 获取这个 URL,但只得到了很多 JavaScript 和标准 HTML,整个页面上都没有提到这个值。

有没有办法获取这个值(1,250.21)?

【问题讨论】:

  • 您可能需要使用 PHP-ExcelReader 之类的库来解析 Excel 文档。快速分解可能看起来像......在上面的地址卷曲 Excel 文档,然后使用 PHP Excel 解析器获取值
  • @b_dubb 是的,这将是最后的手段,但我的好奇心是 Chrome 怎么会显示这个值,但没有显示在网页的源代码中。
  • 你看起来是个好人,但我不会点击那个链接
  • @b_dubb :) 相信我,它只显示一个 Microsoft Online Excel iFrame 和一个包含 1,400.21 的单元格

标签: php curl onedrive


【解决方案1】:

使用 cURL 获取此 URL 与通过浏览器获取该 URL 的结果不同,可能站点会检查某些 cookie、会话变量甚至用户代理以确定它是否是自动请求。也许您必须在 cURL 请求中添加一些额外的参数才能获取整个文档。看看curl_setopt

完成此操作后,您只需解析文档并找到此元素:

我猜你必须解析 cURL 获取的 HTML 并寻找包含你想要的值的元素:

<div originalhorizontalalignment="3" class="cv-nwr" style="width:66px;max-height:16px;text-align:right;font:bold 10pt Calibri,'Segoe UI',Thonburi,Arial,Verdana,Sans-Serif;" title="1,250.21">1,250.21</div>

【讨论】:

  • 您是通过 cUrl @ PHP/Apache 服务器获得的吗?我还没有在服务器上为此设置适当的 PHP cUrl,但是 codepad.org/HLd7Cph0 的 OnlinecUrl.com 输出中不包含“div”。甚至 chrome 也没有提供查看“iFrame”源代码的选项。谢谢..
  • 我的意思是你是怎么得到这个文本的?
  • 对不起,我试过那个浏览器,但我注意到使用 cUrl 的结果是不同的。也许网站会检查一些 cookie、会话变量甚至是用户代理,以确定它是否是自动请求。
  • 谢谢,我在 Chrome>Dev Tools>Elements 中进行了一些挖掘,并通过 Inspect this element 找到了这个:&lt;div originalhorizontalalignment="3" class="cv-nwr" style="width:66px;max-height:16px;text-align:right;font:bold 10pt Calibri,'Segoe UI',Thonburi,Arial,Verdana,Sans-Serif;" title="1,250.21"&gt;1,250.21&lt;/div&gt; 明天会进行更多挖掘-晚上..谢谢:)
  • 没错!好的,如果你取得了一些进展,请告诉我们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多