如何获取要刷新的 URL:导入 HTML 而不是在 Google Apps 脚本中提取新数据



我有一个电子表格,它使用 ImportHTML("http://www.augusta.com/masters/leaderboard","table",1( 提取高尔夫比分,我想在分数刷新时每分钟更新一次。我创建了一个每分钟运行一次的Google Apps Script触发器。触发器运行并且每分钟"刷新"一次,但它从网站中提取旧数据,并且不会提取任何新分数。我如何让它拉出新的分数?

我创建了一个每分钟运行一次的Google Apps脚本触发器(请参阅代码(。

function getData() { 
  var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AUGUSTA"); 
  var queryString = Math.random(); 
  var cellFunction = '=IMPORTHTML("http://www.augusta.com/masters/leaderboard","table",1)';
    sheetName.getRange('A1').setValue(cellFunction); 

触发器运行并且每分钟"刷新"一次,但它从网站中提取旧数据,并且不会提取任何新分数。我可以让它正确更新的唯一方法是手动输入单元格,然后重新输入 URL(稍微更改它,然后更正它(。我如何让它拉出新的分数?

试试这个:

诚然,当您可以将公式作为单元格函数插入时,这是一种愚蠢的方法。 但它似乎是一种将数据放入数组的简单方法。

function getGolfData() { 
  var ss=SpreadsheetApp.getActive();
  var sh=ss.insertSheet(); 
  sh.getRange(1,1).setFormula('=IMPORTHTML("http://www.augusta.com/masters/leaderboard","table",1)');
  SpreadsheetApp.flush();
  Utilities.sleep(10000);
  var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
  var vA=rg.getValues();
  ss.deleteSheet(sh);
  var osh=ss.getSheetByName('Augusta');
  osh.getRange(1,1,vA.length,vA[1].length).setValues(vA);
}

最新更新