Google表格:缓存IMPORTXML数据

时间:2018-09-30 05:09:02

标签: google-sheets

因此,我试图为自己创建一个简单的电影列表,并希望将IMDB / Meta / RT分数保存在一个单元格中。

我可以通过以下方式正常工作:

=IF(ISBLANK(A2),,IFERROR(importxml(("http://www.omdbapi.com/?apikey=**MYKEY**&t="&A2&"&r=xml&tomatoes=true&y=2018"),"root/movie/@imdbRating")/10))

这将返回一个我可以保留在单元格中的值。问题是它并不总是刷新。谷歌表是错误的,importxml或omdbapi。我读过其他人也有同样的问题。

典型的行如下所示:

  

[黑豹] [2018年2月16日] [86%] [74%] [97%] [88%]

由于我的数据变化不大,所以我想以某种方式对其进行缓存。因此,如果importxml失败,则不会清空单元格,它将仅保留最后一个值。也许我可以通过引用另一个选项卡的单元格来做到这一点?我确实尝试过,但是其他标签页的单元格被清空(因为importxml失败),所以主标签页的单元格也会被清空。

有想法吗?

1 个答案:

答案 0 :(得分:0)

我相信这需要一个apps脚本,该脚本会将您对第1行所做的每次更改添加到相应的目标列2-如果不为空/不适用:

function onEdit(e) {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  if(sh.getActiveCell().getColumn() == 1) {
    if(e.value && e.value != '#N/A')
      sh.getRange(e.range.rowStart, 2).setValue(e.value);
  }
}

从菜单转到“转到工具,脚本编辑器”,然后添加脚本。确保在调试器中运行一次并授予所需的权限。

此外,请注意以下参考: