簡體   English   中英

將數據從其他多個工作表寫入主Google Spreadsheet; 是覆蓋每個供稿器表的結果,而不是覆蓋所有結果

[英]Writing data to master Google Spreadsheet from multiple other sheets; am overwriting results of each feeder sheet instead of getting all results

情況:匯總來自多個Feeder Trixes的信息,並嘗試將Feeder的結果填充到主Trix中的一張紙上。

問題:我想將每個供料器Trix的結果(通過下面的get_data_from_feeders()函數收集)寫到主Trix中的同一張紙上。 但是,每個供稿器陣列都會覆蓋以前的供稿器結果,因此,主“ Trix”中僅顯示最后一個供稿器Trix結果,而不是全部三個(下面的write_data(data)函數)。

問題:

1)如何使每個供稿器結果集附加先前的供稿器三層結果,而不是覆蓋它們? [這將每月運行一次,因此每個月都可以覆蓋上個月的工作表]

2)如何對所有結果進行排序(我想我使用.sort()但不確定在哪里調用)?

當前代碼:

function get_data_from_feeders() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var feeders = ss.getRangeByName('spokes').getValues();
  for (var i = 0; i <= feeders.length; i++) {
    var feeder_id = feeders[i][0];
    var feeder_open = SpreadsheetApp.openById(feeder_id);
    var dataPull = feeder_open.getRangeByName('dataPull').getValues(); 

  write_data(dataPull); 
  }
}

function write_data(data) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ws = ss.getSheetByName("Forecast_Aggregation");
  var dataDump = ss.getRangeByName("data_dump");

// I think the next line is where my code is incorrect - each feeder goes back to same cell instead of to the next blank row (hence, overwriting instead of appending)

  ws.getRange(dataDump.getRowIndex(), 2, data.length, 20).setValues(data);
}

謝謝你的幫助!

也許嘗試:

function write_data(data) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ws = ss.getSheetByName("Forecast_Aggregation");
  var dataDump = ss.getRangeByName("data_dump").getRow();
  var nextRow = Math.max(dataDump, ws.getLastRow())+1;
  ws.getRange(nextRow, 2, data.length, 20).setValues(data);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM