首页 > 解决方案 > Google Apps 脚本 - TypeError:data.forEach 不是函数

问题描述

我从 Youtube 复制了另一个开发人员的代码。它从 Google 表格中提取数据并创建多个 PDF。我比 Javascript 更了解 Python,因此我提出了问题。

代码如下:

function createBulkPDFs() {
  const docFile = DriveApp.getFileById("###");
  const tempFolder = DriveApp.getFolderById("###");
  const pdfFolder = DriveApp.getFolderById("###");
  const currentSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DoE");
  const data = currentSheet.getRange(2, 1, (currentSheet.getLastRow() - 1, 4), 9);
  data.forEach(row => {
    createPDF(row[1], row[2], row[3], row[0], row[4], row[5], row[6], row[7], row[8], docFile, tempFolder, pdfFolder, row[1] + " " + row[2]);
  });
}

我在其他线程上阅读了不应使用 row => 的内容,但该视频是在 2020 年 4 月创建的,所以我认为它是最新的编程。我意识到单击数据时它不会显示在自动文本下拉列表中。

我想遍历 Google Sheet 中的每一行。

标签: google-apps-scriptgoogle-sheetsforeach

解决方案


我相信你的问题来自于常量的声明data。当你说

常量数据 = currentSheet.getRange(2,1,(currentSheet.getLastRow()-1,4),9)

由于上述函数只需要 4 个参数。看Sheet.getRange(row, column, numRows, numColumns)

当简化你的data它变成:

currentSheet.getRange(2,1,x,4,9)其中“x”是currentSheet.getLastRow()-1

要解决此问题,您应该只传递getRange预期的 4 个参数。


推荐阅读