在新工作表的每一行上写一个元素

时间:2018-10-18 10:45:37

标签: google-apps-script google-sheets

我有一个数据数组。我想将数组的每个元素写到新表的一行上。另外,我希望元素内的每个元素都位于下一个单元格中。我不确定如何去做。

我认为嵌套的for循环可能是解决方案,这是我在下面尝试过的。它设法将每个元素打印到Logger上。现在,我只需要一种将其成行写入电子表格的方法。

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var data = [['Mr. Gerald', 'Monday', '2:10'], ['Mr. Holmes', 'Tuesday', '3:00']]
  var dataSheet = ss.getActiveSheet()
  var startRange = dataSheet.getRange(1,1)

  for (var i = 0; i < data.length;i++) {
    for (var a = 0; a<data[i].length; a++) {
      Logger.log(data[i][a])
    }}  
}

The output should look like this

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

您的data采用的是工作表中要求的实际格式:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var data = [['Mr. Gerald', 'Monday', '2:10'], 
              ['Mr. Holmes', 'Tuesday', '3:00']];
  var dataSheet = ss.getActiveSheet();
  dataSheet.getRange(1,1,data.length,data[0].length).setValues(data); //or use Advanced Google Services    
}

如果data不是正方形/矩形,请使用Advanced Google services

  var request = {
    range: dataSheet.getName() + '!A1',
    majorDimension: 'ROWS',
    values: data,
  };
  //API must be enabled before use. 
  //https://developers.google.com/apps-script/advanced/sheets
  Sheets.Spreadsheets.Values.update(request, ss.getId(), request.range, {
    valueInputOption: 'USER_ENTERED',
  });