我正在尝试通过每日运行的adwords脚本向Google电子表格添加行。
到目前为止,有些代码是:
var report_iter = AdWordsApp.report(
'SELECT ' + columns_str +
'FROM ACCOUNT_PERFORMANCE_REPORT ' +
'DURING YESTERDAY', { apiVersion: 'v201302' }
).rows();
while(report_iter.hasNext()) {
var row = report_iter.next();
var row_array = [""]; // This is deliberate to include an empty cell in column A in the spreadsheet.
for(var i in columns) {
row_array.push(row[columns[i]]);
}
sheet.appendRow(row_array); // I think this line might be the problem
}
它工作正常,但它也有一些不必要的结果。我想要停止的是每次我在电子表格的底部附加一行时,它还会附加50行其他空白单元格。然后,下次我追加一行时,它会将它附加到电子表格的底部,之前的一行后面的50行...有没有办法阻止它。我看过使用Feed列表,但我不知道如何操作,或者你可以使用adwords脚本。
我唯一想到的是每次都在底部插入一个新行,找到行号,然后根据行号插入数据。
我所拥有的是3天前完美的工作,但现在它已经停止了。
有任何建议或想法吗?
答案 0 :(得分:2)
1)你不应该使用appendRow。如果使用getRange setValues一次写入所有行并使用sheet.getLastRow计算起始行,则会更快更有效。
2)如果你确实使用了appendRow,它会追加到最后一个非空行,所以它应该正常工作并且不应该写过自动插入的空白行。但是,也许你有一些像arrayformula或其他东西在整个列上运行的东西,它们在底部的那些空行中写入。即使它写入空白值,这些行也不会被视为空,因此下一个appendRow将写在它们下面。
答案 1 :(得分:0)
这可能是将数组设置为30行的调用之一,然后只清空数组,但不创建新的调整大小的数组。
但#1是要走的路......