我有一个电子表格,该表格使用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(稍作更改,然后更正)。如何获得新分数?
答案 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);
}