我有一个电子表格,它使用 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);
}