我有 A 列,其中包含一些 Internet 站点的 URL 页面。在 B 列中,我使用以下函数:
“=CONCATENATE(ImportData(来自 A 列的 URL)”。
... 将数据页提取为该列中的文本,但 Google Docs 在文档中的 50 个函数中对该函数有限制。
也就是说,A列的URL地址每次变化,网页的数据如何以文本的形式提取到B列,就像我使用ImportData一样?
谢谢。
我有 A 列,其中包含一些 Internet 站点的 URL 页面。在 B 列中,我使用以下函数:
“=CONCATENATE(ImportData(来自 A 列的 URL)”。
... 将数据页提取为该列中的文本,但 Google Docs 在文档中的 50 个函数中对该函数有限制。
也就是说,A列的URL地址每次变化,网页的数据如何以文本的形式提取到B列,就像我使用ImportData一样?
谢谢。
您可以使用 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
}