谷歌文档脚本,搜索和替换文本字符串并更改字体(例如粗体)

2023-12-19

我是谷歌文档脚本的新手。

在谷歌文档中,我需要搜索几个文本字符串(例如,lightface字体的“student 1”),以将这些文本字符串替换为另一个文本字符串(例如,“学生A“), 但在boldface font.

为了搜索和替换,我使用以下代码:

function docReplace() {

  var body = DocumentApp.getActiveDocument().getBody();
  // change "student 1" to "Student A" in boldface
  body.replaceText("student 1", "Student A");

}

上面的代码仅使用谷歌文档的当前字体将“student 1”替换为“Student A”,但我不知道如何将字体从lightface更改为boldface。

i tried

body.replaceText("student 1", "<b>Student A</b>");

当然,上面的代码并没有工作。

任何帮助将非常感激。谢谢。


将在 google 文档中多次出现的文本字符串(例如“student 1”)替换为新的文本字符串(例如“学生A") 粗体字,分为两步:

1-编写一个函数(称为 docReplace)来以常规/正常字体(无粗体)进行搜索和替换:

function docReplace() {

  var body = DocumentApp.getActiveDocument().getBody();
  // change "student 1" to "Student A"
  body.replaceText("student 1", "Student A");

}

2- 编写一个函数(例如,boldfaceText)来搜索所需文本(例如“学生 A”)以及该文本每次出现时的两个偏移值(即 startOffset 和 endOffsetInclusive)以设置字体将这些偏移值内的字符设置为粗体:

function boldfaceText(findMe) {

  // put to boldface the argument
  var body = DocumentApp.getActiveDocument().getBody();
  var foundElement = body.findText(findMe);

  while (foundElement != null) {
    // Get the text object from the element
    var foundText = foundElement.getElement().asText();

    // Where in the Element is the found text?
    var start = foundElement.getStartOffset();
    var end = foundElement.getEndOffsetInclusive();

    // Change the background color to yellow
    foundText.setBold(start, end, true);

    // Find the next match
    foundElement = body.findText(findMe, foundElement);
  }

}

上面的黑体文本代码的灵感来自于帖子中的代码查找文本(多次)并突出显示 https://stackoverflow.com/questions/11478471/finding-text-multiple-times-and-highlighting.

字符的偏移值只是描述该字符在文档中的位置的整数,第一个字符的偏移值为 1(就像字符的坐标)。

使用“学生A”作为调用函数boldfaceText的参数,即

boldfaceText("Student A");

可以嵌入到函数 docReplace 中,即

function docReplace() {

  var body = DocumentApp.getActiveDocument().getBody();
  // change "student 1" to "Student A"
  body.replaceText("student 1", "Student A");

  // set all occurrences of "Student A" to boldface
  boldfaceText("Student A");

}

在谷歌文档中,只需运行脚本 docReplace 将所有出现的“student 1”更改为“学生A” 以粗体字显示。

上述两个函数(docReplace和boldfaceText)可能是向新手(像我一样)介绍谷歌文档脚本的好方法。在使用谷歌文档脚本一段时间以熟悉之后,学习 Robin 更优雅和更高级的代码,它可以同时执行上述两个步骤。

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

谷歌文档脚本,搜索和替换文本字符串并更改字体(例如粗体) 的相关文章

  • 通过脚本删除工作表

    我正在执行此代码 function deleteSheets var ss SpreadsheetApp getActiveSpreadsheet var sheets ss getSheets var transp ss getSheet
  • 我正在尝试将变量从 Google 脚本传递到 HtmlOutputFromFile

    我正在尝试创建一个带有下拉列表的输入框 其中该列表基于从电子表格中提取的二维数组 到目前为止 我的研究告诉我 如果我将 HtmlService createHtmlOutputFromFile 存储在一个变量中 我就可以 设置该变量的属性
  • 类型错误:ss.getSheetByName 不是函数

    我的代码旨在从用户输入表单中获取数据并将新行插入到电子表格中 function addNewRow rowData const currentDate new Date const ss SpreadsheetApp getActiveSh
  • 如何下载以前保存的 Google Apps 脚本修订版本?

    我仍在尝试从中恢复不知何故 丢失 了 Google Apps 脚本 https stackoverflow com questions 33697789 当我创建脚本的副本以将代码分叉到另一个项目时 我的想法是尝试通过驱动器 API 下载
  • 使用 Gmail Apps 脚本以 HTML 和普通格式发送电子邮件

    我正在使用 Google Apps 脚本为 Gmail 编写一个自动回复机器人 http script google com http script google com 每次我使用GmailThread s Reply https dev
  • 通过嵌入式 Google Sheet 上的按钮激活脚本

    我正在尝试嵌入一个 Google 电子表格 其中包含一个我希望用户能够激活的脚本 我不希望他们能够编辑页面上的任何内容 我想我可以这样做 共享工作表并设置编辑权限 限制在我想要共享的一张纸上进行编辑 图像位于单元格上方 所以我认为这会阻止人
  • Google 文档如何处理编辑冲突?

    我一直在尝试编写自己的 Javascript 编辑器 其功能类似于 Google Docs 允许多人同时使用 我不明白一件事 假设用户 A 和用户 B 直接相互连接 网络延迟为 10 毫秒 我假设编辑器使用 diff 系统 据我了解 Doc
  • 仅生成一张电子表格的 PDF

    我需要一个只用一张电子表格创建 PDF 的脚本 我目前有一个生成 PDF 的脚本 但它处理整个文件 我无法将这些值复制到另一个文件 因为我需要导出的工作表是带有从另一个工作表中提取的数据的图形 你可以帮帮我吗 谢谢 function myF
  • 如何设置多个过滤器?

    我有一个关于将过滤器应用于多个值以使用 Google 脚本隐藏它们的问题 我有一个具有多种状态的项目跟踪器 例如 达到目标 已完成 已取消 已延迟 等 我想编写一个脚本来设置 状态 列的筛选器值 以便标记为 已完成 或 的行 已取消 被隐藏
  • 如何删除 GMail 标签 - Google Apps 脚本

    我想从放回收件箱的每封邮件中删除 后续 标签 我尝试了几件事 但仍然没有成功 我希望有人可以帮助我或为我指明正确的方向 涉及的函数是 function moveToInbox page GmailApp moveThreadsToInbox
  • 使用 Google 脚本移动 Google Drive 中的文件

    我正在尝试使用通过 Google 表单发布的信息创建文档 然后在创建文档后 我想将该文档移至共享文件夹中以供人们查看 目前 我的脚本从 Google Forms 链接的电子表格中获取所有信息 使用该信息 我使用以下代码来创建文档 var t
  • 如何使用 Google 脚本将数据添加到 Google 表格中的特定行

    在我的 Google 表格中 我将索引放在名为 colorRow 的变量中 我只是想向工作表中的该行添加一些数据 但数据不断进入页面下方的其他行 我究竟做错了什么 var data Some more fields in data arra
  • 迭代数组时,如何在 Google 文档的 Google Apps 脚本中附加项目符号和子项目符号?

    我有一份与会者名单 我想列出每一个 并在其后面添加两个要点 每个要点都有一个子项目符号 我尝试了以下代码 但它列出了数组的元素 然后在末尾写入所有项目符号 for i 0 i lt attendees length i body inser
  • google apps 脚本 ==> UrlFetchApp、方法 GET 和 cookie

    我使用 UrlFetchApp 发送用户和密码 POST 方法 获取cookie后 并在其他请求中使用 GET方法 但是这个新请求不起作用 我认为这个 cookie 在这个新请求中没有正确使用 谁能帮我 var opt method pos
  • 使用 JavaScript 控制 Google Docs 嵌入式查看器

    我需要控制我的网站中嵌入的 Google 文档查看器 更具体地说 我需要能够启用 禁用 Google 幻灯片视图的控件 并能够使用 JavaScript 启动 停止演示文稿 我无法找到任何 JavaScript API 也无法添加我的主机
  • Google Apps脚本:从文件中获取文件夹名称

    在谷歌应用程序脚本中我有这个代码 var files DriveApp searchFiles modifiedDate gt 2013 02 28 and title contains untitled while files hasNe
  • 无法更改 Apps 脚本的云项目

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

    有没有人尝试过在 Google 电子表格中编写脚本来对网站进行 ajax 调用 我想让电子表格从网站上自行更新 但是在输入这段简短的代码块后 我抛出了一个错误 ReferenceError XMLHttpRequest 未定义 任何想法 我
  • 根据 Google Apps 脚本中的另一个数组过滤数组

    我对 JavaScript 相当陌生 可能需要一些帮助来解决我在处理 Google Apps 脚本时遇到的问题 我打算做的是根据数组过滤数据 该数组是从特定工作表中的特定单元格中获取的 其中包含我不想保留在数据中的字符串元素 换句话说 包含
  • Apps 脚本列表项 - 制作项目符号而不是编号?

    我可以使用应用程序脚本中的appendListItem将一堆项目作为编号列表添加到谷歌文档中 有什么方法可以将其从编号更改为项目符号吗 你应该能够使用ListItem setGlyphType https developers google

随机推荐