使用脚本格式化 googlesheet 单元格中的文本

2023-12-08

我有一个谷歌工作表,它在单元格中格式化了文本。有些文字有颜色并且是粗体的。我使用谷歌脚本在单元格中添加新内容。当我运行脚本时,会添加新内容,但会删除旧内容的格式。

1)如何在执行脚本时保留旧内容的格式。 2)我想让新内容变得粗体和彩色。如何格式化添加到单元格的新内容?

Here is the content of my cell before executing the script

这是我的脚本:

  function CreateIssue() {
  var spreadsheet = SpreadsheetApp.getActive();
  var cell = spreadsheet.getCurrentCell();
  var oldContent = cell.getValue();
  var newContent ='Group:\n\nDescription:\n\nExpected Results:\n\nActual Results:\n\nTest 
  Results:\n\nTest Data:';
  var space = " ";
  cell.setValue(newContent + space + oldContent);

Here is the content of my cell after executing the script

如您所见,旧内容的格式已清除。


  • 您想要将文本添加到单元格中文本的顶部并将其放入单元格中。
  • 在这种情况下,您希望保留原始文本的文本样式。
  • 您想要将添加文本的文本样式更改为“粗体”和“前景颜色”。
  • 您希望使用 Google Apps 脚本来实现此目的。

如果我的理解是正确的,这个答案怎么样?请将此视为几个可能答案之一。

修改要点:

当使用该值时setValue,看来文字样式被清除了。这可能是规范。所以在本例中,为了设置文本样式,我使用了 TextStyleBuilder 类和 RichTextValueBuilder 类。修改后的脚本的流程如下。

Flow:
  1. 检索单元格范围。
  2. 创建附加文本的文本样式newContent and space.
  3. 检索原始文本的文本样式,即oldContent.
  4. 创建新的 RichTextValueBuilder。
  5. 将新文本设置为 RichTextValueBuilder。
  6. 将文本样式设置为 RichTextValueBuilder。
  7. 将 RichTextValueBuilder 放入单元格中。

修改后的脚本:

当你的脚本被修改后,它会变成如下所示。请选择一个单元格,包括oldContent并运行脚本。这样,newContent and space被添加到oldContent,并且文本样式已设置。

function CreateIssue() {
  var spreadsheet = SpreadsheetApp.getActive();
  var cell = spreadsheet.getCurrentCell();
  var oldContent = cell.getValue();
  var newContent = 'Group:\n\nDescription:\n\nExpected Results:\n\nActual Results:\n\nTest Results:\n\nTest Data:';
  var space = " ";

  // I added below script.
  var newStyles = [{
    start: 0,
    end: newContent.length,
    style: SpreadsheetApp.newTextStyle().setBold(true).setForegroundColor("green").build()
  }];
  var richTextValue = cell.getRichTextValue();
  var offset = newContent.length + space.length;
  var oldContent = richTextValue.getText();
  if (oldContent.length > 0) {
    richTextValue.getRuns().forEach(function(e) {
      newStyles.push({
        start: offset + e.getStartIndex(),
        end: offset + e.getEndIndex(),
        style: e.getTextStyle()
      });
    });
  }
  var richText = SpreadsheetApp.newRichTextValue().setText(newContent + space + oldContent);
  newStyles.forEach(function(e) {richText.setTextStyle(e.start, e.end, e.style)});
  cell.setRichTextValue(richText.build());
}
  • 在上面的脚本中,附加文本以粗体和绿色显示。关于这一点,当你想改变颜色时,请修改它。

Result:

When var newContent = "foo";设置好后,选择包含“bar”文本样式的单元格,运行上面的脚本,可以得到如下结果。

Before:

enter image description here

After:

enter image description here

保留原始文本样式,附加文本具有文本样式。

参考:

  • 类 TextStyleBuilder
  • 类 RichTextValueBuilder

如果我误解了你的问题并且这不是你想要的方向,我深表歉意。

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

使用脚本格式化 googlesheet 单元格中的文本 的相关文章

随机推荐

  • R 使用链接写入 Excel

    我想知道如何将 r 数据框导出到 excel 格式文件 并嵌入一些链接 这样我就可以使用 R 创建 xlsm 文件 打开 xlsm 文件时 我可以单击某些链接并打开其他文件或网页 我检查了几个 R Write to Excel 包 但几乎找
  • 令牌字符映射到 Ngram 过滤器 ElasticSearch NEST

    我正在尝试使用 NEST 复制以下映射 但在将标记字符映射到标记生成器时遇到问题 settings analysis filter nGram filter type nGram min gram 2 max gram 20 token c
  • Facebook Feed Dialog 返回未处理的 JavaScript,包括导致 iOS 应用程序崩溃的 post_id

    我尝试使用 Facebook 的 Feed Dialog 根据 Facebook 开发者网页上的示例 我编写了两个类我的应用程序模型类 and 我的视图控制 见下文 编译运行没有错误或警告 iOS 应用程序仅在第一次运行时挂起 当我打电话时
  • 如何在 MATLAB 中保存带有封闭框区域的绘图?

    保存绘图时 如何关闭顶部和右侧带有黑线的绘图区域 我不知道如何制作或如何搜索 如果有人知道请告诉我 例如 请看下面所示的图 其中缺少线条 在保存图像之前 请使用box命令 这会将您的绘图包围起来 使其周围有黑框 如您在示例图像中指定的那样
  • 防止直接访问 Node & Express 应用程序中的目录

    在我的 Express 应用程序中 我在 public 中有一个名为 media 的目录 我想限制对其 及其子目录 的访问 重定向或显示 404 我怎样才能实现它 提前致谢 如果你定义了public文件夹中express static像这样
  • 防止对覆盖层后面的元素进行 Tab 键操作

    我正在使用键盘 Tab 键 Shift Tab 键 在整个网页上进行 Tab 键切换 一切都运行良好且顺利 此外 当我继续按 Tab 键时 焦点会循环浏览所有元素 地址栏 元素 返回地址栏等 现在在某些情况下 我的内容之上有一个模式和一个透
  • 为什么 () => void 返回一些东西?

    我知道下面并不意味着返回 类型 为空 我的理解是 voidFunc 不返回任何内容 因为它返回 void 为什么它返回任何类型 type voidFunc gt void const myFunc voidFunc gt return he
  • Getopts 不带破折号地标记错误选项

    Getopt Long Configure no pass through my opts GetOptions opts opt1 s opt2 s opt3 test pl bad option without dash 当传递一个不带
  • SAX 解析“&”字符[重复]

    这个问题在这里已经有答案了 当我尝试解析 char 时 我在 SAX 解析中遇到问题 所有其他特殊字符都会在 SAX 解析器中自动解析 但我在 字符中遇到问题 有人请给我建议吗 首先 我将来自 Web 服务的 XML 保存到一个字符串中 并
  • Angular 2:在引导之前调用服务

    当引导我的 Angular 2 v2 4 时 我尝试运行一个函数 该函数将在应用程序加载之前自动授权用户 然而 这似乎不起作用 import platformBrowserDynamic from angular platform brow
  • 让docker使用IPv4进行端口绑定

    我有 docker 主机 里面有一个容器 docker 主机仅在 IPv6 接口上绑定端口 而不在 IPv4 上绑定端口 这是输出 tcp 0 0 0 0 0 0 22 0 0 0 0 LISTEN tcp 0 0 0 0 0 0 5508
  • 使用 PHP 处理退回邮件?

    这是我的场景 我有 2 个电子邮件帐户 电子邮件受保护 and 电子邮件受保护 我想向我的所有用户发送电子邮件 电子邮件受保护 但然后 回复 电子邮件受保护 到目前为止 我的 PHP 脚本可以处理它 当邮件无法发送时 会发送至 电子邮件受保
  • Android 保存的图像质量低

    我通过下面的代码拍照并保存到 SD 卡 但它生成的图片质量很低 即使是 100 质量 也非常小 也许 bitmap compress 不是正确的方法 或者根本不是位图 这是我的代码 public class TakePhoto extend
  • 为什么在这个绝对的程序中没有显示积极的条款

    让我们从这个演示开始 include
  • java+Swing:矩形或其他“精灵”的高效叠加

    我不太确定如何表达这一点 所以请耐心等待 我有两个JPanels 在一个容器中JPanel与OverlayLayout Both JPanel容器中的 s 覆盖paint Graphics 底端JPanel是不透明的并且绘制了一些相当复杂的
  • TextBlock 的默认高度是多少?

    在 Silverlight 和 WPF 中 TextBlock 是否有默认高度 如果有 它是什么
  • CMake 未检测到 GCC 包含标头(使用“-include”)更改

    我观察到奇怪的 CMake 行为 如果我的项目有一个头文件包含到所有源使用 include inc h借助于ADD COMPILE OPTIONS include inc h 然后命令更改为从未检测到的标头 这意味着我可以更改标头 但 CM
  • 使用 OpenCV 中的轮廓点从源图像创建图像?

    我必须在图像中找到正方形 然后创建检测到的正方形的单独图像 到目前为止 我能够检测到正方形并根据四个点获取其轮廓 Problem 当我使用 ROI 创建图像时 我也得到了不存在正方形的背景 我想删除该区域并只想保留与正方形相关的区域 你想用
  • 清理 MySQL 用户参数

    What are the dangerous characters that should be replaced in user input when the users input will be inserted in a MySQL
  • 使用脚本格式化 googlesheet 单元格中的文本

    我有一个谷歌工作表 它在单元格中格式化了文本 有些文字有颜色并且是粗体的 我使用谷歌脚本在单元格中添加新内容 当我运行脚本时 会添加新内容 但会删除旧内容的格式 1 如何在执行脚本时保留旧内容的格式 2 我想让新内容变得粗体和彩色 如何格式