如何使用WEBSERVICE libreoffice calc函数?

问题描述

这曾经在 libreoffice calc 中工作,但现在不能再工作了。

我在单元格中输入:(我的个人密钥已更改)

=WEBSERVICE("http://api.currencylayer.com/historical? access_key=123456&date=2021-03-08")

我应该返回一个 JSON(在浏览器中有效),但在 Calc 中我收到一个 #VALUE! 错误

我保存了文档并重新加载它,此时会出现一个横幅,上面写着“外部链接自动更新已被禁用”。我点击“允许更新”,单元格变为“Err:540”,代表“禁用外部内容”。

我尝试在 Tool > Options > LibreOffice > Security > Macro Security > changed from "High" (the default) to "Medium" (confirmation required before executing macros from untrusted sources"

更改安全设置

...但没有成功。

我使用的是 ArchLinux,我尝试使用 libreoffice-still (7.0.4-2)、libreoffice-still (7.0.5-2) 和 libreoffice-fresh (7.1.2-2)。

我发现的一种解决方法是安装一个插件,该插件提供 here 所述的 GET 函数,但我更喜欢内置方法。这是一个错误吗?

解决方法

似乎 libreoffice 不喜欢结果是 JSON 的事实。根据问题中的工作流程,返回 XML 的其他网络服务工作正常。

这对 libreoffice 来说是一种误导,因为报告的错误是 540,这意味着外部内容已禁用(您还可以在状态栏中注意到“外部内容已禁用”)。很确定这是一个错误,JSON 不起作用也是一个错误,因为 libreoffice 不应该关心返回的格式 - 不要求解析它。

解决方法是使用这个插件暴露的GET函数: https://www.reddit.com/r/libreoffice/comments/ajqswc/reading_data_into_calc_from_a_web_based_source/ef0o7sw?utm_source=share&utm_medium=web2x&context=3