自动刷新ImportXML Google表格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动刷新ImportXML Google表格相关的知识,希望对你有一定的参考价值。

我有一个工作表,它从一个站点导入数据,大约有10种导入都略有不同。我想要一种可以每五分钟更新一次的方法。我知道有做到这一点的脚本,但是当我尝试使用它时,只会将?update放在最后并弄乱整个导入。我可以显示我正在使用的脚本。它是从4年前开始的,也许已经过时了。任何帮助,将不胜感激。

还有一个脚本,将=更改为零,然后再次将其重新添加,否则我认为会起作用。

这是我正在使用的脚本

    function RefreshImports() 
  var lock = LockService.getScriptLock();
  if (!lock.tryLock(5000)) return;             // Wait up to 5s for previous refresh to end.

  var id = "Sheets ID";
  var ss = SpreadsheetApp.openById(id);
  var sheet = ss.getSheetByName("Sheet Name");
  var dataRange = sheet.getDataRange();
  var formulas = dataRange.getFormulas();
  var content = "";
  var now = new Date();
  var time = now.getTime();
  var re = /.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi;
  var re2 = /((\?|&)(update=[0-9]*))/gi;
  var re3 = /(",)/gi;

  for (var row=0; row<formulas.length; row++) 
    for (var col=0; col<formulas[0].length; col++) 
      content = formulas[row][col];
      if (content != "") 
        var match = content.search(re);
        if (match !== -1 ) 
          // import function is used in this cell
          var updatedContent = content.toString().replace(re2,"$2update=" + time);
          if (updatedContent == content) 
            // No querystring exists yet in url
            updatedContent = content.toString().replace(re3,"?update=" + time + "$1");
          
          // Update url in formula with querystring param
          sheet.getRange(row+1, col+1).setFormula(updatedContent);
        
      
    
  

  // Done refresh; release the lock.
  lock.releaseLock();

  // Show last updated time on sheet somewhere
  sheet.getRange(12,2).setValue("Rates were last updated at " + now.toLocaleTimeString())

答案

您可以编写脚本来从指定的单元格检索公式并将其设置回计时器上的相同单元格

为此,您需要:

function setMeOnTrigger() 
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  var cell = sheet.getRange("C1");
  cell.setFormula(cell.getFormula())

以上是关于自动刷新ImportXML Google表格的主要内容,如果未能解决你的问题,请参考以下文章

Google 表格:=importxml 未加载某些结果

如何在 Google 表格中找出 IMPORTXML 的正确 xpath - 收到错误?

使用来自 bigquery 的数据自动更新 google 电子表格

在Google表格上更正= IMPORTXML的路径

Google 表格 ImportXML - 提取类信息

如何在 Google 表格中为 IMPORTXML 找出正确的 xpath - N/A 错误?