簡體   English   中英

如何使用 JavaScript/Google App 腳本在 Google 表格中連續映射 arrays

[英]How do I get arrays mapped in a row in google sheet using JavaScript/Google App script

我有一個代碼可以讀取多張紙中的兩列(D&H)並將它們保存在數組中。 我想做的是將此數組中的數據映射到臨時工作表中的一行,但我一直運行到一個錯誤:遇到錯誤參數(數字,數字,數字,null)不匹配SpreadsheetApp.Spreadsheet.getRangeList 的方法簽名。 我真的每次讀取工作表時都應該將數據附加到下一行。 我將不勝感激在解決挑戰方面的任何幫助

function combinesheets() {
var folder = DriveApp.getFolderById( Copy_Folder_id)
var filesIterator = folder.getFiles();

var file;
var fileType;
var ssID;
var combinedData = [];
var data;

while(filesIterator.hasNext()){
 file = filesIterator.next();
 fileType = file.getMimeType();

if(fileType === "application/vnd.google-apps.spreadsheet"){
ssID = file.getId()
data = getDataFromSpreadsheet(ssID);
combinedData = combinedData.concat(data);
} //if ends here

}//while ends here

var ws = SpreadsheetApp.openById(Stage_sheet_id);
var ss = ws.getSheetByName("Project List");
ws.getRangeList(2,1, combinedData.length, combinedData.length [0]).setValues(combinedData) //running into an error on this line- The parameters (number,number,number,null) don't match the method signature for SpreadsheetApp.Spreadsheet.getRangeList.
Logger.log(combinedData)

}

function getDataFromSpreadsheet(ssID){
var ss =  SpreadsheetApp.openById(ssID);
var ws = ss.getSheets()[0]
var data =  ws.getRange("A11:I" + ws.getLastRow()).getValues();// how do I get the columns I want here (D & H)
Logger.log(data)

}

您收到錯誤是因為getDataFromSpreadsheet() function 沒有return其結果。

要獲取 D 和 H 列中的值,省略空白行,請嘗試以下操作:

const values1 = ws.getRange('D11:D').getValues();
const values2 = ws.getRange('H11:H').getValues();
return values1.map((row, index) => row.concat(values2[index]))
  .filter(row => row.join(''));

combinesheets()中,使用以下方式存儲數據:

ss.getRange(2, 1, combinedData.length, combinedData[0].length)
  .setValues(combinedData);

暫無
暫無

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

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