0

我有 A 列,其中包含一些 Internet 站点的 URL 页面。在 B 列中,我使用以下函数:

“=CONCATENATE(ImportData(来自 A 列的 URL)”。

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

也就是说,A列的URL地址每次变化,网页的数据如何以文本的形式提取到B列,就像我使用ImportData一样?

谢谢。

4

1 回答 1

1

您可以使用 onOpen 触发器,该触发器对 A 列中的每个 url 使用UrlFetch并设置 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);
}

如果要在 url 更改时加载新内容,请使用 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
}
于 2013-01-28T00:07:57.503 回答