nee*_*ses 12 loops google-sheets google-apps-script
我正在学习用于Google Spreadsheets的Google Apps脚本.
我在一列中有一个URL列表,我想编写一个脚本来从每个URL获取title元素并将其写入相邻的单元格.我按照以下脚本为一个特定单元格完成了此操作:
function getTitles() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("url_list");
var range = sheet.getRange("G3");
var url = range.getValue();
var response = UrlFetchApp.fetch(url);
var doc = Xml.parse(response.getContentText(),true);
var title = doc.html.head.title.getText();
var output = sheet.getRange("H3").setValue(title);
Logger.log(title);
return title;
}
Run Code Online (Sandbox Code Playgroud)
这将获取G3中的URL,解析它,拉取元素并将输出写入H3.
现在我有了这个基本的构建块,我想循环整个G列并将输出写入相邻的单元格但是我被卡住了.谁能指出我正确的方向?
Bry*_*n P 24
可能看起来像这样:
function getTitles() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("url_list");
var urls = sheet.getRange("G3:G").getValues();
var titleList = [], newValues = [],
response, doc, title;
for (var row = 0, var len = urls.length; row < len; row++) {
if (urls[row] != '') {
response = UrlFetchApp.fetch(urls[row]);
doc = Xml.parse(response.getContentText(),true);
title = doc.html.head.title.getText();
newValues.push([title]);
titleList.push(title);
Logger.log(title);
} else newValues.push([]);
}
Logger.log('newValues ' + newValues);
Logger.log('titleList ' + titleList);
// SET NEW COLUMN VALUES ALL AT ONCE!
sheet.getRange("H3").offset(0, 0, newValues.length).setValues(newValues);
return titleList;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59277 次 |
| 最近记录: |