我正在使用Google表格从外部数据提供程序解析API数据 - 我通过脚本编辑器创建了许多自定义函数,这些函数将使用我的唯一键对此数据提供程序执行ping操作,并将数据解析为一系列表。
API的设置方式我在A列中请求类别数据,数据被解析为B-F列。我有一个逻辑子句,其中函数不会运行,除非我将一个单独的单元格设置为" On" - 原因是我为每次打电话付费。如果在调用数据后我将单元格设置为"关闭" (或者#34; On"以外的任何东西)数据消失,因此我通常将其设置为On以便我可以处理数据。
我注意到有时谷歌工作表会自动刷新/重新调用我的功能,就好像我已将按钮设置为"关闭"然后到" On"再次。这是一个问题,因为基本上我再次收取已经提取的数据的费用。我可以100%确认没有我接触任何东西 - 有时它会在几分钟后发生,有时会在几个小时后发生。
这是google表格的已知问题/功能吗?无论如何我可以阻止这种情况发生吗?一旦我拨打了数据,我就不想再打电话了#34;它出于任何原因。
编辑 - 尝试提供更多细节
为了尝试给出一个视觉示例,A1可以下注设置为" On"或"关"。 A5:A100是我输入类别的地方,B5:B100具有以下(以B5为例)
=IF($A$1="ON",Transpose(CustomFunction(A5)),"Button Off")
因此,当我输入工作表时,按钮设置为" On"并且数据已在B5:F5中解析,偶尔我会看到"正在加载......"好像我重新跑了一切。没有我接触任何东西就会发生这种情况
答案 0 :(得分:1)
您的自定义功能可以:
使用Cache Service的时间很长,最长可达21600秒(6小时)。这仍然会每天多次执行外部呼叫,因此它并不完全是您正在寻找的内容。
使用Properties Service存储提取的信息。您可以传入唯一键作为参数,例如A1Notation中的单元格ID。然后,自定义函数只会返回已存储的信息(如果有的话),或者如果它没有,则将其存储并存储。
如果您真的需要只运行一次的东西,请不要使用自定义功能。根据汤的建议,菜单驱动的功能会更合适。