![](/img/trans.png)
[英]google app script fetch data from sheets within the spreadsheet into one master sheet
[英]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.