google apps script - How to loop range of cells and set value in adjacent column -
i'm learning google apps scripts use google spreadsheets.
i have list of urls in 1 column , want write script title element each url , write in adjacent cell. have accomplished 1 specific cell per following script:
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; } this gets url in g3, parses it, pulls element , writes output in h3.
now have basic building block want loop entire g column , write output adjacent cell i'm stuck. can point me in right direction?
may this:
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; (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 @ once! sheet.getrange("h3").offset(0, 0, newvalues.length).setvalues(newvalues); return titlelist; }
Comments
Post a Comment