adwords 脚本中的 sheet.appendrow 附加了太多行
Posted
技术标签:
【中文标题】adwords 脚本中的 sheet.appendrow 附加了太多行【英文标题】:sheet.appendrow in adwords scripts is appending too many lines 【发布时间】:2013-10-10 00:13:32 【问题描述】:我正在尝试通过每天运行的 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 行......有什么办法可以阻止这种情况。我看过使用提要列表,但我不知道该怎么做,或者你是否可以使用 adwords 脚本。
我唯一想到的另一件事是每次在底部插入一个新行,找到行号,然后根据行号插入数据。
我在 3 天前工作得很好,但现在它刚刚停止了。
有什么建议或想法吗?
【问题讨论】:
标记为 google-app-script? 您是否检查过“查看 > 执行记录”以查看您是否多次调用appendRow
?如果不是这样,请发布整个代码,以便我们尝试重现它(包括全局变量)。
【参考方案1】:
1) 你不应该使用 appendRow。如果您使用 getRange setValues 一次写入所有行并使用 sheet.getLastRow 计算起始行,将会更快更高效。
2) 如果您确实使用了 appendRow,它将追加到最后一个非空行,因此它应该可以正常工作并且不应该写入自动插入的空白行。但是,也许您有类似 arrayformula 之类的东西或其他东西在写在底部的那些空行中的整个列上进行操作。即使它写入空白值,这些行也不会被视为空,因此下一个 appendRow 将写在它们下方。
【讨论】:
完美。第 2 点是问题所在。我用1做到了!谢谢!【参考方案2】:这可能是将数组设置为 30 行的调用之一,然后只清空数组,而不是创建新的调整大小的数组。
但是#1是要走的路......
【讨论】:
以上是关于adwords 脚本中的 sheet.appendrow 附加了太多行的主要内容,如果未能解决你的问题,请参考以下文章
Google AdWords AdGroup API 脚本中的多个标签名称
使用 AdWords 脚本,如何将 Merchant Center 中的 Feed 替换为 Google Drive 中的 .txt 文件?