簡體   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