You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets Apps Script:如何为拼接字符串设置部分内容加粗格式?

实现Google表格单元格内部分内容加粗拼接

需求:将A1(Tom)、B1(White)、C1(1/1/2000)的内容拼接至D1,仅姓名(Tom White)部分加粗,最终效果为Tom White, born 1/1/2000。

你之前尝试的代码失效原因很直接:getValue()返回的是普通字符串/数值,根本没有setBold()方法,自然无法生效。要给单元格内的部分文本设置格式,得用Google Apps Script的RichTextValueBuilder来构建富文本。

以下是可行的代码:

function exampleFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  
  // 获取单元格值
  var name = sheet.getRange('A1').getValue();
  var surname = sheet.getRange('B1').getValue();
  var dateOfBirth = sheet.getRange('C1').getValue();
  
  // 创建加粗文本样式
  var boldStyle = SpreadsheetApp.newTextStyle()
    .setBold(true)
    .build();
  
  // 拼接完整文本并构建富文本
  var fullName = name + ' ' + surname;
  var fullText = fullName + ', born ' + dateOfBirth;
  
  var richText = SpreadsheetApp.newRichTextValue()
    .setText(fullText)
    // 给姓名部分设置加粗(从起始位置0到姓名总长度)
    .setTextStyle(0, fullName.length, boldStyle)
    .build();
  
  // 将富文本写入D1单元格
  sheet.getRange('D1').setRichTextValue(richText);
}

关键说明:

  • 先通过newTextStyle()创建加粗样式,再用newRichTextValue()构建包含完整内容的富文本对象;
  • 用setTextStyle(start, end, style)指定需要格式化的文本范围,这里直接用姓名的总长度作为结束位置,适配不同长度的姓名;
  • 最后必须用setRichTextValue()写入单元格,普通的setValue()只能处理纯文本,不支持部分格式。

内容的提问来源于stack exchange,提问作者Anfrea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:22:44