【问题标题】:Mac Excel web query not workingMac Excel 网络查询不起作用
【发布时间】:2017-03-31 08:41:45
【问题描述】:

我们使用web queries 在 Excel 中检索数据以进行报告。这些 Web 查询在 Excel 2007、2010、2013 和 2016 中正常工作。
但在 Mac Excel 2016 中使用时会失败

我们使用VBA 执行这些网络查询并检索由Spring REST 接口生成的数据。

我已经尝试使用 http GET 而不是 http POST 并尝试通过 UI 执行 Web 查询('Data' -> 'Get External Data' -> 'Run Saved Query' using a .iqy file)。
错误似乎也与内容无关(尝试了非常简单的 html;<html><body><table><tr><td>col1</td></tr><tr><td>value1</td></tr></table></body></html>

使用 Wireshark 分析流量时,REST 调用的响应正确(http 200 内容正确)。

使用“.iqy”文件导入 UI 时报告的错误:"cannot locate the internet server or proxy server"。 使用 VBA 执行 Web 查询时出错:"Error 1004 Application-defined or Object-defined error"

有谁知道是什么导致了这种行为?

【问题讨论】:

  • 这个答案可能帮助:stackoverflow.com/questions/42652648/…
  • 感谢@CallumDA;它没有帮助,因为它不回答执行 Web 查询调用。这与互联网搜索无关; web queries 是 Excel 从 Web 端点插入工作表数据的一种技术。

标签: excel vba macos excel-web-query


【解决方案1】:

找到原因:Spring MVC (REST) 设置了一些default headers。其中之一是X-Content-Type-Options: nosniff。我们生成一些 REST 响应数据的方式导致未设置 Content-Type 标头。

Mac Excel 无法确定内容类型(因为 X-Content-Type-Options: nosniff 选项)

这可以通过不设置X-Content-Type-Options 标头或显式设置Content-Type 标头来解决。

奖励信息:我使用 WireMock 模拟 REST 接口,并且能够一一剥离标头以暴露罪魁祸首。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多