Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌表单导入TML_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Google apps script 谷歌表单导入TML

Google apps script 谷歌表单导入TML,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我已经完成了以下脚本。我想用IMPORTHTML在我的Google工作表中得到一个表,一切正常,只有当数据改变时,Google表中的数据才会改变。我用一个触发器运行整个程序,这样它每分钟都会更新。 但是问题来了,如果我让整个事情像这样运行,网站上的数据发生了变化,现在问题来了,在谷歌的表单中,旧的值没有变化​​只是一次又一次地被取代,而不是新的。如果我手动从单元格中删除IMPORTHTML,然后将其复制回,它的工作方式会很奇怪。但不幸的是,它不能与脚本和触发器一起工作,我做错了什么 functi

我已经完成了以下脚本。我想用IMPORTHTML在我的Google工作表中得到一个表,一切正常,只有当数据改变时,Google表中的数据才会改变。我用一个触发器运行整个程序,这样它每分钟都会更新。 但是问题来了,如果我让整个事情像这样运行,网站上的数据发生了变化,现在问题来了,在谷歌的表单中,旧的值没有变化​​只是一次又一次地被取代,而不是新的。如果我手动从单元格中删除IMPORTHTML,然后将其复制回,它的工作方式会很奇怪。但不幸的是,它不能与脚本和触发器一起工作,我做错了什么

function getData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Lager123");
    
  var importXpath_1 = '=IMPORTHTML("URLwithSIMPLEtable","table", 1)';
  
  sheet.getRange("A1").setValue(importXpath_1);
  
}

在设置值之前,先清除单元格内容,然后清除它:

function getData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Lager123");
    
  var importXpath_1 = '=IMPORTHTML("URLwithSIMPLEtable","table", 1)';
  sheet.getRange("A1").clearContent();
  SpreadsheetApp.flush();
  sheet.getRange("A1").setValue(importXpath_1);
  
}
参考资料:


为了不在importhtml中获取缓存响应,我们可以在URL字符串中附加一些随机查询参数

var queryString = Math.random(); // This will generate random value
  sheetName.getRange('P7').setValue(queryString); // This random value will be placed in Cell P7

  var cellFunction = '=ImportHtml("URL?"&P7;"table";1)}'; // Value from P7 cell will be appended in URL to avoid caching issue
    sheetName.getRange('A1').setValue(cellFunction); 

我在我的项目中尝试了这个方法,效果很好。

这是我一直尝试的方法,但也不起作用。它仍然使用旧的值。可能数据并不是每分钟都更新一次,所以您需要再等一点时间才能看到更改?@mKeey为了获得完整性,我更新了我的答案。