如何获取URL进行刷新:ImportHTML不会在Google Apps脚本中提取新数据

时间:2019-04-12 16:58:41

标签: html google-apps-script google-sheets

我有一个电子表格,该表格使用ImportHTML(“ http://www.augusta.com/masters/leaderboard”,“ table”,1)来记录高尔夫得分,我希望每分钟刷新一次得分。我创建了一个Google Apps脚本触发器,使其每分钟运行一次。触发器运行,并且每分钟“刷新”一次,但是它会从网站上提取旧数据,并且不会提取任何新分数。如何获得新分数?

我创建了一个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(稍作更改,然后更正)。如何获得新分数?

1 个答案:

答案 0 :(得分:0)

尝试一下:

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

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);
}