无法通过replaceText()访问Google Apps脚本文档

2023-12-09

这是我的代码,我不明白为什么 ReplaceText() 不起作用。

function createDoc(){
  var templateid = "1jM-6Qvy47gQ45u88WfDU_RvfuSTsw27zBP_9MfsUGr8"; // get template file id
  var FOLDER_NAME = "Completed Rental Agreements"; // folder name of where to put doc
// get the data from an individual user
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var data = sheet.getRange(2, 1, sheet.getLastRow()-1,sheet.getLastColumn()).getValues();
  var lastRow = sheet.getLastRow();

  var firstName = sheet.getRange(lastRow, 2, 1,1).getValues();
  var lastName = sheet.getRange(lastRow, 3, 1,1).getValues();
  var guestEmail = sheet.getRange(lastRow, 7, 1,1).getValues();
  var companyEmail = "[email protected]";
  var companyName = "Bear Lake Project Management";
  var username = "[email protected]"; // get their email (from sheet name)
  var me = "[email protected]";

  //Copy Template
  var docid = DocsList.getFileById(templateid).makeCopy("Rental Agreement - "+firstName+""+lastName+"-"+guestEmail).getId();
//  var file = DocsList.getFileById(docid).addEditors(me);

 // move file to right folder
  var file = DocsList.getFileById(docid);
  var folder = DocsList.getFolder(FOLDER_NAME);
  file.addToFolder(folder);

  var doc = DocumentApp.openById(docid);
  var body = doc.getActiveSection();
  var body_text = doc.addEditor("[email protected]");


 //  Append Cabin Rules 
//   doc.appendParagraph("This is a typical paragraph.");
body.replaceText("/^companyEmail$/", "test");
body.replaceText("%companyName%", "test1");
body.replaceText("%todayDate%", "test1");
doc.saveAndClose();

}

我尝试过 doc.replaceText 和 body.replaceText 以及其他几个选项。

有什么想法为什么这不起作用吗?

预先感谢


考虑一下:

body.replaceText("%companyName%", "test1");

这将查找两侧带有“%”的“companyName”的每个实例。在这种情况下,“%”只是一个位于奇怪位置的标点符号。这是一种约定,用于降低意外替换文档中真实文本的可能性。

您的模板文档必须具有确切的模式才能使替换工作正常进行。 (您的没有...相反,您只有“companyName”。将其更改为“%companyName%”。)将该规则应用于您想要进行的任何其他替换。


您可以从一些优化中受益。

  ...
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  // Next line is hard to maintain - there's a better way.
  // var data = sheet.getRange(2, 1, sheet.getLastRow()-1,sheet.getLastColumn()).getValues();
  // Read whole spreadsheet, skip headers
  var data = sheet.getDataRange().getValues().slice(1);

  // Already read in all data, use it instead of reading sheet again.
  var firstName = data[data.length-1][2-1];    // (2-1) because array counts from 0
  var lastName = data[data.length-1][3-1];     // while spreadsheet columns from 1
  var guestEmail = data[data.length-1][7-1];   // Better: put these into variables.
  ...

在试验您的代码时,我遇到了自动完成问题doc.getActiveSection()。据报道,最近发生了变化2013 年 4 月 15 日发行说明.

将 Document.getActiveSection() 重命名为 getBody()。

您应该相应地更新您的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法通过replaceText()访问Google Apps脚本文档 的相关文章

  • 如何使用 google Sheet 作为数据库

    如何在 HTML Web 应用程序中生成 Google 工作表数据 并允许用户从 HTML Web 应用程序更新评论 我在谷歌表中有一些数据 通过谷歌表单提交 我想使用搜索按钮根据 请求编号 从网络应用程序搜索工作表数据 应该能够更新网络应
  • 自动从外部数据库加载 Google 电子表格数据

    我有一个共享的 Google 电子表格 工作表的某些列必须填充数据库服务器 PostgreSQL 中存在的数据 SQL 查询 此外 数据加载必须安排为自动完成 例如每天 1 点 最后 我需要在电子表格中进行一些调整 例如 加载后将日期时间放
  • 替换列表列表中的元素

    The applyR 中的函数是简化 for 循环以获得输出的好方法 是否有一个等效的函数可以帮助人们在替换向量的值时避免 for 循环 通过示例可以更好地理解这一点 Take this list for example x list li
  • Google 表单根据提交的值将文件上传到特定的新文件夹

    我的表单有 2 个字段 假设表单的名称是CV Drops Name 上传文件按钮 因此 默认情况下 当人们上传文件时 它将保存在我的 Google Drive 文件夹下CV Drops 我想要的是根据字段中的输入将文件放置在子文件夹中NAM
  • 将 JSON 数据导入 Google 表格

    我从 Web 服务中提取数据 其格式为 JSON 我正在为 Google Sheets 编写一个 Google Apps 脚本 它将为我填充数据 我的问题是 我似乎无法解析它 Doing var dataset myJSONtext Bro
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • TypeError:无法读取 Google Sheet 脚本中 null 的属性“getRange”(第 6 行,文件“Code”)[重复]

    这个问题在这里已经有答案了 我想从网页读取数据 为此我使用了导入数据功能 为了自动刷新写了一个脚本 下面是代码 我收到类似的错误类型错误 无法读取 null 属性 getRange 第 16 行 文件 Code 如何摆脱这个错误 funct
  • 用于在子字符串中用破折号替换空格的正则表达式。

    我一直在努力寻找一种方法 可以用字符串中的破折号替换空格 但只能替换字符串特定部分内的空格 Source ABC This is a sub string DEF 我对正则表达式的尝试 s g 如果我使用正则表达式来匹配空格并替换 我会得到
  • Google Apps脚本:从文件中获取文件夹名称

    在谷歌应用程序脚本中我有这个代码 var files DriveApp searchFiles modifiedDate gt 2013 02 28 and title contains untitled while files hasNe
  • Google Apps 脚本 - 脚本之间的通信

    Hi我的问题如下 我想创建一个小网页 在该网页上可以在 Google 日历中创建事件 但有一些限制 就我而言 我的室友可以编辑此日历来预订洗衣机 该预订不能重叠 而且我们所有人的使用天数都是有限的 我创造了私人日历 我已经创建了验证请求的脚
  • 如何在自定义函数中评估电子表格公式?

    在电子表格中我可以输入 SIN 45 123在一个单元格中 它将被评估 如何在自定义函数中评估电子表格函数 例如 eval 函数的工作原理如下 function myFunc return Sheet eval SIN 45 123 是否可
  • 无法更改 Apps 脚本的云项目

    我们无法再将 Apps 脚本项目与云平台项目关联起来 当在 GAS 编辑器中转到 资源 云平台项目 并输入项目 ID 时 它显示 项目不存在或您需要对其进行编辑访问 该项目确实存在 并且同一个 Google 帐户是它的所有者 通过相同的工作
  • 从 Google 电子表格自定义函数发出的 Ajax 调用

    有没有人尝试过在 Google 电子表格中编写脚本来对网站进行 ajax 调用 我想让电子表格从网站上自行更新 但是在输入这段简短的代码块后 我抛出了一个错误 ReferenceError XMLHttpRequest 未定义 任何想法 我
  • 如何替换 JavaScript 中出现的所有字符串?

    给定一个字符串 s Test abc test test abc test test test abc test test abc 这似乎只删除了第一次出现的abc在上面的字符串中 s s replace abc 我该如何更换all它的出现
  • 如果设置公开并且组织中的所有 ID 均可访问,则 getCalendarById(id) 如何工作

    我正在使用谷歌应用程序脚本来处理日历事件 根据文件 https developers google com apps script reference calendar calendar app getCalendarById 28Stri
  • 在 Google Apps 脚本中获取数据后构建卡片并更新它

    我正在尝试构建一个 Gmail 插件 其中包含 2 个外部 API 调用 第一个是快的 200ms 第二个是慢的 5s 因此 我想首先使用第一次获取的结果构建卡 然后在第二次调用完成后更新卡 是否可以 Call fetchAll并在每次请求
  • 将 Google 表格中的选择复制到 Google 文档中(使用 REST API?)

    我有一个 Google 表格 我使用利用 Google 的 REST API 的 python 脚本更新其内容 我想自动将该工作表的一部分复制到给定的 Google 文档中 例如 我希望该工作表的 A G 列出现在我的文档中 并在工作表出现
  • 即使单击“允许”后,也会出现“执行该操作需要授权”消息

    我最近遇到了一个授权新的 Google App Script 项目的问题 特别是使用 Cloud SQL 管理 API 的项目 相同的代码存在于之前授权的 GAS 项目中并且工作正常 但是如果我获取 GAS 项目的副本并尝试第一次运行某个函
  • 替换为 NA

    我有一个包含条目的数据框 看来这些值没有被视为 NA 因为 is na 返回 FALSE 我想将这些值转换为 NA 但找不到方法 Use dfr dfr
  • 发送电子邮件的 Google Apps 脚本语法错误。无法识别我的问题

    我正在尝试让 Google 工作表从工作簿中另一张工作表的长列表中发送个性化电子邮件 我使用了教程 因为我是所有编码语言的认证新手 但 AppScript 告诉我第 4 行有语法错误 我一生都无法弄清楚我做错了什么 但我确信当由具有这些合法

随机推荐

  • 我怎样才能只从 firebase 获取密钥?

    我有一个如图所示的数据库结构 我需要显示红色矩形中的日期 我尝试这样做 但它抛出一个错误 并且我在堆栈上找不到相同的问题 我的数据库 reference child doc1 observe value with snapshot in i
  • 左右移动..CSS 非常通用

    我想编写一个通用的CSS动画来左右移动div 触摸容器的边缘 以一种简单的方式应用于我除了具有绝对定位之外一无所知的任何div 问题是 简单地将 left 设置为 0 然后设置为 100 一会儿就会消失 我应该使用诸如 calc 100 w
  • 如何启用 HTTPS 流包装器

    我在 Windows 系统上安装了 php5 并尝试使用命令行控制台执行以下脚本
  • Xmlhttprequest 在phonegap/android 应用程序上返回 401

    我想通过我的 PhoneGap android 应用程序使用 xmlhttprequest 访问服务网络 但下面的代码返回 状态为 401 var request new XMLHttpRequest request open GET ht
  • iOS设备的唯一标识

    我使用 Mac 地址来唯一标识 iOS 设备 但从 iOS7 开始 系统始终返回 02 00 00 00 00 00 值 我为上述问题搜索了三个选项 供应商识别 广告识别 使用IOUnit框架获取序列号 由于 UnityFramework
  • qt-通过线程更新 ui

    您好 我在通过线程更新 ui 时遇到问题 代码工作正常 但问题是当我想移动我的窗口时 正如你所知 在那一刻 ui 线程将停止更新 我的线程向已停止的线程发送值 导致错误 我不知道如何解决这个问题 这是我的线程代码标题 ifndef READ
  • 验证数字范围内的扫描仪输入

    我目前正在创建我的第一个游戏 该游戏在控制台中执行 我被要求验证一个输入 这可以通过简单的代码来完成 目标是输入 然后验证该数字是否为整数 并且在 1 4 范围内 如果可能的话 应该用基本算法来解决问题 问题是它不会给我我想要的结果 当我输
  • PHP MySQL 加载数据 INFILE 帮助

    我似乎无法正确回答这个问题 基本上 我从表单中获取 csv 并尝试将其加载到数据库中 我从 phpmyadmin 获取了大部分查询 我应该使用临时文件 对吗 这里是
  • javascript regexp - 用四舍五入的数字替换字符串中的所有浮点数

    有点基本的 javascript regexp 但我现在无法将其组合在一起 我有一个带有浮点数的字符串 m 135 969098800748 207 1229911216347 c 0 7762491582645 0 23419873268
  • JavaScript 和 PHP 中的 Web 服务之间的安全通信

    我想为其创建一个 Web 服务 带有 post get delete REST 和 2 个客户端 第一个客户端将使用 JavaScript 并且需要与 Web 服务进行通信 第二个客户端是桌面应用程序 我正在互联网上搜索一种确保通信安全的解
  • 为什么不能通过参数切换函数生成器的行为?

    考虑这两个函数 def foo x 0 while True yield x x 1 def wrap foo limit 10 gen True fg foo count 0 if gen while count lt limit yie
  • VBA 与 XSLT 可以在同一行中漂亮地打印带有结束标记的 XML

  • Ruby:计算2次之间的时间差

    我想计算2次之间的差异 start time 22 00 Rails 将此解释为 2015 12 31 22 00 00 0100 Second time 02 00 Rails 将此解释为 2015 12 31 02 00 00 0100
  • VBS 在后台访问 URL

    我想让我的 VB 脚本在后台访问一个 URL 它可以在后台打开浏览器并随后将其关闭 越 沉默 越好 我有两个实现可以在我的机器上工作 但在另一台机器上不起作用 Set WshShell WScript CreateObject WScrip
  • 为具有“DataType.Upload”属性的属性生成文件上传输入?

    我有以下视图模型 public class MyViewModel DataType DataType Upload public HttpPostedFileBase ImageUpload get set public int Venu
  • 是否可以使用 Rails 3 更改 MongoDB 中的默认时区?

    我遇到这样的麻烦 当我创建对象并设置一些日期时间时 它正在 UTC 时区中保存数据库 这是示例 showing full list of object properties Grant id 5108ee29e6b564611400000
  • 使用 Jmeter 随机选择产品

    我必须使用 Jmeter 对电子商务 Web 应用程序进行性能测试 一个流程就像Search gt select any product gt Add to Cart 在这里 我必须从搜索结果中选择任何随机产品并继续 您能指导我如何选择任意
  • 将工作日添加到新日期[重复]

    这个问题在这里已经有答案了 我想添加 1 个工作日后的新日期 例如 如果用户选择任何星期五 则应在第二个字段中显示星期一的日期 下面是代码 JQUERY function one datepicker onSelect function d
  • SSRS 报表查看器 - 报表图表无法在 IE11 中显示

    我有一个报告查看器控件 显示仪表板麦粒肿报告 它有一些图表可以提供概述 但是在 IE11 中查看时 该报告根本不呈现 只是显示为空白 底层存储过程也正在运行 我做了一些测试 图表显示在 Firefox 中 当前 图表显示在 Chrome 中
  • 无法通过replaceText()访问Google Apps脚本文档

    这是我的代码 我不明白为什么 ReplaceText 不起作用 function createDoc var templateid 1jM 6Qvy47gQ45u88WfDU RvfuSTsw27zBP 9MfsUGr8 get templ