我有一個應用程序腳本,它使用YouTube API從YouTube獲取某頻道的視頻。 YouTube一次只能返回50個結果。在循環中附加行 - Google電子表格
我怎麼每次都追加行電子表格中我獲得下一組結果
我的問題的實質是,如何在電子表格中For循環上做一個更新行。
我試過了。 sheet.appendRows(object [])
並且不起作用。
任何想法?
我的腳本
function searchbySafety(safety) {
var first_response = YouTube.Search.list('id,snippet',{
channelId: 'UCpZG4Vl2tqg5cIfGMocI2Ag' ,
maxResults: 50,
safeSearch: safety
});
Create_headers();
for (var i = 0; i < first_response.items.length; i++) {
var item = first_response.items[i];
Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
gen_results(first_response, safety);
write_range(data);
}
var nextPageToken = first_response.nextPageToken;
while(nextPageToken != null) {
var videoresponse = YouTube.Search.list('id,snippet', {
channelId: 'UCpZG4Vl2tqg5cIfGMocI2Ag' ,
maxResults:50,
pageToken: nextPageToken,
safeSearch: safety
});
for (var i = 0; i < videoresponse.items.length; i++) {
var item = videoresponse.items[i];
Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
//gen_results(videoresponse, safety);
//write_rest_data(data);
}
nextPageToken = videoresponse.nextPageToken;
}
}
function gen_results(response, safety){
for (var i = 0; i < response.items.length; i ++)
{
var item = response.items[i];
row = [item.snippet.title, "https://www.youtube.com/watch?v=" + item.id.videoId, safety];
data[i] = row;
}
return data;
}
function write_range(data){
var range = report_sheet.getRange(2,1,50,3);
range.setValues(data);
}
function Create_headers(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var sheet = sheets[3];
Logger.log(sheet.getName());
var headers = [
["Title","URL","Safety"]
];
var range = sheet.getRange("A1:C1");
range.setValues(headers);
report_sheet = sheet;
}
這主要取決於你如何寫數據到表。你能顯示你腳本的相關部分嗎? – 2014-09-12 15:43:32
我已添加代碼。 – 2014-09-12 15:50:52
謝謝,我用盡可能多的細節回答,並增加了一些小改進。 – 2014-09-12 16:33:59