【问题标题】:How do I get arrays mapped in a row in google sheet using JavaScript/Google App script如何使用 JavaScript/Google App 脚本在 google sheet 中连续映射数组
【发布时间】:2021-07-14 08:36:17
【问题描述】:

我有一个代码可以读取多张纸中的两列(D 和 H)并将它们保存在数组中。我想做的是将此数组中的数据映射到临时工作表中的一行,但我一直遇到错误:遇到错误参数(数字,数字,数字,null)不' t 匹配 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)

}

【问题讨论】:

  • 我不确定我是否理解。如果它与问题无关,为什么会有 DriveApp 代码?还是我缺少问题的一部分?另外,我不确定我是否理解列映射的想法,您能否发布源数据和预期输出的示例?谢谢

标签: javascript arrays google-apps-script google-sheets mapping


【解决方案1】:

您收到错误是因为getDataFromSpreadsheet() 函数没有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);

【讨论】:

  • 感谢您的回复。当我使用您的建议编辑代码时,我现在遇到另一个错误 TypeError: Cannot read property 'length' of undefined
  • 编辑答案以在getDataFromSpreadsheet() 中正确获取和返回值。
猜你喜欢
  • 1970-01-01
  • 2020-11-17
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 2023-01-07
相关资源
最近更新 更多