Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用getSheetByName函数时出现问题_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 使用getSheetByName函数时出现问题

Google apps script 使用getSheetByName函数时出现问题,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在尝试从文件夹中的Google Sheets文件导入数据 此文件夹中的某些文件在文件中没有工作表名称“采购订单”,因此我得到的响应为空 function import() { var spreadsheets = DriveApp. getFolderById("1AE-GotVyCaxlEF04kfedXytn65oxJ2hi"). getFilesByType(MimeType.GOOGLE_SHEETS); var data = []; wh

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

此文件夹中的某些文件在文件中没有工作表名称“采购订单”,因此我得到的响应为空

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);
  }

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

    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);
  }

欢迎来到堆栈溢出!其他用户将您的问题标记为低质量和需要改进。我对您的输入进行了重新措辞/格式化,使其更易于阅读/理解。请查看我的更改,以确保它们反映您的意图。但我认为你的问题仍然无法回答。您现在应该回答您的问题,以添加缺少的详细信息(请参阅)。如果您还有其他问题或反馈,请随时给我留言。问题是什么?您的代码没有试图处理该工作表名称不存在的情况-我们是否应该猜测在这些情况下会发生什么并编写代码来处理它?预期的结果是什么?您的方法无法解决OP面临的问题,即具有给定名称的工作表可能不存在(在这种情况下,对变量调用方法将失败)。嗯,你是对的。应该添加一个else{continue}。如果它不是采购订单,这将跳过工作表。你混淆了
电子表格
类对象和
工作表
类对象