"TypeError: Cannot read property 'length' of undefined" Converting Google Sheet data into a Google Doc template using Google Apps Script

"TypeError: Cannot read property 'length' of undefined" Converting Google Sheet data into a Google Doc template using Google Apps Script

Google sheet 包含文件的文件夹:https://drive.google.com/drive/folders/1hPKQk7eRjSdlMDjiZI2BZrHIRhzVtYG5?usp=sharing

我正在尝试使用我的测试合并 google sheet 文件中的数据填写 google 文档中的模板,特别是在名为“PrintThis”的选项卡中。我有一个 Google Apps 脚本添加到我的“测试合并”google sheet 文件,但我收到此错误:“类型错误:无法读取 属性 'length'不明确的”。 PrintThis 中的数据行数会有所不同,所以我猜错误是由这一行引起的?

    var tactics = Sheets.Spreadsheets.Values.get('1xSWskGS8B_3Y35I4ycAjFZQiGbfJo13O3837RKnxnpk', 'A4:J');    

但是,当我 A4:J6 只是为了测试这组静态数据时,它仍然给我同样的错误。我该如何解决这个问题,即使 PrintThis 选项卡具有动态行数并且我的 PrintThis 选项卡可以移动(例如,新的 sheet/tab 可以放在 PrintThis 选项卡的左侧或右侧) ?

如果您想使用表格 API 获取“测试合并”的值,请确保添加 sheet 名称和范围。示例:“测试合并!A4:J”

示例:

代码:

function myFunction() {

  Logger.log(Sheets.Spreadsheets.Values.get('somespreadsheetid', 'Test Merge!A4:J').values);
}

输出:

由于您使用的是 Google Apps 脚本,因此您可以使用 SpreadsheetApp.

代码:

function myFunction() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Merge");
  var range = sh.getRange(4, 1, sh.getLastRow() - 4 + 1, 10);
  var val = range.getValues();
  Logger.log(val)
}

输出:

参考文献:

SpreadsheetApp

Method: spreadsheets.values.get