如何用Google Apps Script给文档段落中的问题文本设置粗体?
解决Google Apps Script中仅将表头(问题)设为粗体的问题
你之前直接用appendParagraph(header + " " + cell.toString())的方式没法单独给表头设粗体,因为这是把两段文本拼接成一个字符串后整体添加,没法拆分格式。要实现单独加粗表头,得利用Google Docs API里的Text对象来逐段控制格式,具体修改如下:
替代代码
var header = headers[cellIndex]; var responseText = cell.toString(); // 先创建空段落 var paragraph = body.appendParagraph(''); // 获取段落的文本编辑对象 var text = paragraph.editAsText(); // 添加表头并设置粗体:索引从0到表头长度-1的范围设为粗体 text.appendText(header).setBold(0, header.length - 1, true); // 追加空格和用户回复内容 text.appendText(" " + responseText);
原理说明
- 先创建空段落,避免直接拼接字符串导致无法拆分格式;
- 通过
editAsText()获取段落的可编辑文本对象,这是实现局部格式控制的关键; setBold(start, end, isBold)方法可以精准控制文本范围的加粗状态,这里表头的范围是从0到header.length - 1(因为索引从0开始);- 最后追加空格和回复内容,这部分保持默认格式即可。
另一种简化写法
如果觉得创建空段落麻烦,也可以先添加表头作为段落内容,再设置粗体后追加回复:
var header = headers[cellIndex]; // 先添加表头为段落 var paragraph = body.appendParagraph(header); var text = paragraph.editAsText(); // 给整个表头设粗体 text.setBold(0, header.length - 1, true); // 追加回复内容 text.appendText(" " + cell.toString());
这两种写法都能实现你要的效果,核心都是通过Text对象来单独控制表头部分的格式,而不是一次性添加拼接好的字符串。
内容的提问来源于stack exchange,提问作者sobbingDev
相关产品推荐
相关产品推荐

