【问题标题】:Auto update data in google spreadsheet when data in Json url changed by Apps Script当应用脚本更改 Json url 中的数据时,自动更新 Google 电子表格中的数据
【发布时间】:2015-07-11 03:39:22
【问题描述】:
我正在使用“Trevor Lohrbeer (@FastFedora)for ref. 的 ImportJSON”库将 JSON 提要导入 Google 电子表格。
简单地说,我只是将函数 =ImportJSON(url, query, options) 输入到单元格中,单元格将在那里返回数据。
一切都很好,但是当 url 中的 JSON 数据发生变化时,google 电子表格中的数据不会自动更新。我必须再次将函数重新输入单元格或手动刷新脚本才能完成。
那么任何人都可以向我提出一些解决方案吗?
【问题讨论】:
-
你会发现公式重新计算的解释in this answer,这至少可以帮助你了解情况。自从 GOOGLECLOCK 函数停用以来,没有公式会触发自动重新计算。
标签:
json
caching
google-apps-script
google-sheets
【解决方案1】:
只有当它引用的单元格发生更改时,才会重新计算表格中的 UDF。在1 上有一些建议,我建议设置触发器,每次您都重新计算工作表:
- 重新打开
- 更改单元格 - 取决于您使用数据的程度
- 使用时间驱动的脚本定期重新计算
【解决方案2】:
问题解决了。
我使用 T J 回答的方法和建议链接。
我在原来的函数中多加了一个参数,比如 $A$1
=myFunction(firstParam, $A$1)
在我的 gs 中再添加一项功能
function onEdit(e)
{SpreadsheetApp.getActiveSheet().getRange('A1').setValue(Math.random());}
然后当工作表中有任何编辑或触发 onedit(e) 时,单元格将被更新。
最后,我使用触发计时器每分钟触发一次 onedit 以使数据保持更新!
谢谢!
PS: 以前,触发设置对我不起作用,因为 importjson 功能仅用于触发整个 importjson.gs 而不是像触发菜单中的设置那样单独触发功能。