使用getSheetByName函数的问题

时间:2018-09-04 05:14:28

标签: google-apps-script google-sheets

我正在尝试从文件夹中的Google表格文件中导入数据。

此文件夹中的某些文件在文件中没有工作表名称“ purchase order”,因此我得到的响应为空。

function import() {
   var spreadsheets = DriveApp.
     getFolderById("1AE-GotVyCaxlEF04kfedXytn65oxJ2hi").
     getFilesByType(MimeType.GOOGLE_SHEETS);

    var data = [];
    while (spreadsheets.hasNext()) {
      var currentSpreadsheet = 
      SpreadsheetApp.openById(spreadsheets.next().getId());
      data = data.concat(currentSpreadsheet.   
        getSheetByName("Purchase order").
        getRange("A13:H50").
        getValues());
    }

    SpreadsheetApp.
      getActiveSheet().
      getRange(1, 1, data.length, data[0].length).
      setValues(data);
  }

1 个答案:

答案 0 :(得分:0)

有更好的方法可以做到这一点。 看一下将所需的数据推入数组并将该数组写入电子表格。

    function import() {
   var spreadsheets = DriveApp.
     getFolderById("1AE-GotVyCaxlEF04kfedXytn65oxJ2hi").
     getFilesByType(MimeType.GOOGLE_SHEETS);

    var data = [];
    while (spreadsheets.hasNext()) {
      var currentSpreadsheet = SpreadsheetApp.openById(spreadsheets.next().getId());
      var sheetName = currentSpreadsheet.getActiveSheet().getSheetName();
      if (sheetName === "Purchase order"){ 
      data = data.concat(currentSpreadsheet.getSheetByName("Purchase order").getRange("A13:H50").getValues());
      } else{continue} //edit made
    }

    SpreadsheetApp.
      getActiveSheet().
      getRange(1, 1, data.length, data[0].length).
      setValues(data);
  }