繁体   English   中英

AdWords脚本到Google电子表格

[英]adwords scripts to google spreadsheet

我有一个名为dataMapEN的对象-> var dataMapEN = {} ;

这个物件有30000个词条。
我正在尝试使用以下代码将它们写入Google电子表格:

var sheet = ss.getSheetByName("EN");
populateSheet(sheet, dataMapEN);

function populateSheet(sheet, dataSource){
  for(item in dataSource){

    sheet.appendRow([item, dataSource[item].clicks, dataSource[item].impressions, dataSource[item].cost, dataSource[item].conversionValue, dataSource[item].conversions]);

  }
}

我所看到的是要编写200个条目,该脚本大约需要2分钟。
每次我写到工作表时,脚本都会超时。

有没有一种更快的方法来写入工作表,以使脚本在30分钟的窗口中完成?

谢谢

您的脚本太慢了,因为它正在对电子表格进行3万次写入调用。
尝试先将所有内容放入2d数组中,然后仅执行一次调用。
这样的事情(未经测试,因为没有示例):

var sheet = ss.getSheetByName("EN");
populateSheet(sheet, dataMapEN);

function populateSheet(sheet, dataSource){
    var dataToWrite = dataSource.map(funtion(row, item) {
        return [item, row.clicks, row.impressions, row.cost, row.conversionValue, row.conversions];
    });

    sheet.getRange(sheet.getLastRow(), 1, dataToWrite.length, dataToWrite[0].length).setValues(dataToWrite);
}

如果您的数据实际上是对象的对象,则不是对象的数组会遍历Object.keys(dataSource)并返回dataSource[key].clicks等。

您可能会遇到一次写入太多数据的危险,因此您可能想批量写入1k行或类似的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM