我应该用什么脚本来解决Google电子表格中对ImportData的限制?

时间:2013-01-27 21:07:24

标签: javascript google-apps-script google-sheets google-docs

我的列A包含一些互联网网站的网页。在B列中,我使用以下功能:

“= CONCATENATE(ImportData(来自A栏的网址)”。

...要在此列中将数据页提取为文本,但Google文档在文档中的50个函数中对此函数有限制。

换句话说,如何在A列中每次更改URL地址,以文本形式在B列中提取的网页数据,就像我使用ImportData?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用针对A列中每个网址使用UrlFetch的onOpen触发器,并在B列中设置文本。这会在每次打开时更新电子表格。

这可能会奏效(我之前从未使用过UrlFetch):

 function onOpen(e){
  var sheet = SpreadsheetApp.getActiveSheet();

  //Load all the URLs
  var urls = sheet.getRange("A:A").getValues();

  //Initialize array for content
  var text = [];

  //Loop through URLs
  for(var i = 0; i < urls.length; i += 1){
    if(urls[i][0] === "") continue;//Skip blank cells
    //Fetch the webpage, push the content to the array (inside an array since it needs to be 2d)
    text.push(
      [UrlFetchApp.fetch(urls[i][0]).getContentText()]
    );
  }
  //Store text in spreadsheet in range the size of the text array
  sheet.getRange("B1:B" + text.length).setValues(text);
}

如果您想在网址更改时加载新内容,请使用onEdit触发器

function onEdit(e){
  //Get the active cell
  //Then get its url
  //Fetch the web page and store it in the cell next to edited url
}