google-apps-script - 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 中的每一行。
解决方案
我相信你的问题来自于常量的声明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 个参数。
推荐阅读
- vue.js - 如何在没有捆绑器的情况下使用 vue-router-next?
- python - 这是在 Python 中同时抓取多个 URL 的正确方法吗?
- swift - 如何在 SwiftUI 中的文件、编辑和查看之前将项目添加到应用程序菜单?
- java - 当使用 Serenity 失败时,如何继续运行其他步骤?
- mysql - 我们可以直接在 MySQL 数据库中的值中应用计算公式吗?
- angular - Angular 9 多个组件
- python - Python拒绝导入模块
- php - 在 wampserver 3 上安装 php 扩展
- distributed-system - 再次使用 ipfs add 失败
- python-3.x - 如何在 selenium python 中使用特定的 Chrome 配置文件