Google文档脚本开发:在指定文本后插入带复选框标题与可展开项目符号列表的模板内容
Google文档脚本开发:在指定文本后插入带复选框标题与可展开项目符号列表的模板内容
看起来你已经搭好了格式的基础框架,核心痛点就是精准定位到「New Items:」之后插入内容,同时实现带复选框的标题+可折叠项目符号列表的组合格式对吧?我帮你调整了脚本,完全匹配你要的效果,咱们来一步步拆解:
完整修改后的脚本
function insertTemplateAfterNewItems() { // 1. 定义格式样式 const headerFormat = { BOLD: true, BACKGROUND_COLOR: "#000000", FOREGROUND_COLOR: "#FFFFFF" }; // 2. 模板文本内容 const headerText = "Enter_Item_Title_Here"; const bulletItems = [ "Agenda Item Owner(s): ___________", "Discussant: ___________", "Discussion Date: ___________", "External follow up: ___________", "Notes: ___________", "Action Items: ___________" ]; // 3. 获取文档主体和目标文本位置 const doc = DocumentApp.getActiveDocument(); const body = doc.getBody(); const targetText = "New Items:"; const findResult = body.findText(targetText); if (!findResult) { DocumentApp.getUi().alert("未找到「New Items:」文本,请检查文档内容!"); return; } // 4. 确定插入位置:目标段落的下一行 const targetParagraph = findResult.getElement().getParent().asParagraph(); const insertIndex = body.getChildIndex(targetParagraph) + 1; // 5. 插入带复选框的格式化标题 const headerPara = body.insertParagraph(insertIndex, headerText); headerPara.setHeading(DocumentApp.ParagraphHeading.HEADING3); headerPara.setGlyphType(DocumentApp.GlyphType.CHECKBOX); // 开启复选框,勾选后自动添加删除线 headerPara.setTextAttributes(headerFormat); // 应用黑底白字加粗格式 // 6. 插入可折叠的项目符号列表(作为标题的子项) bulletItems.forEach(itemText => { const bulletPara = body.insertParagraph(insertIndex + 1, itemText); bulletPara.setGlyphType(DocumentApp.GlyphType.BULLET); bulletPara.setNestingLevel(1); // 设置为标题的子层级,自动支持展开/折叠 insertIndex++; // 每次插入后更新索引,保持列表顺序 }); // 可选:自动折叠新插入的列表(默认是展开状态,如需默认折叠可取消注释) // headerPara.setCollapsed(true); }
关键改动说明
精准定位插入点
- 用
body.findText()快速定位「New Items:」的位置,再通过getChildIndex获取目标段落的索引,把插入位置设为索引+1,确保内容刚好出现在目标文本下方。 - 加入了找不到目标文本的判断,弹出提示框避免脚本无意义执行。
- 用
带复选框的标题实现
- 给标题段落设置
setGlyphType(DocumentApp.GlyphType.CHECKBOX),让标题自动带上复选框,勾选后Google Docs会自动添加删除线效果,完全匹配你要的交互。 - 用
setTextAttributes()一次性给整个标题应用黑底白字加粗格式,比逐字符设置更高效简洁。
- 给标题段落设置
可展开/折叠的项目符号列表
- 通过
setNestingLevel(1)把所有项目符号设置为标题段落的子层级,Google Docs会自动识别为可折叠列表,点击标题前的箭头就能自由展开/折叠内容。 - 把项目符号文本整理成数组,用循环生成,后续要新增项目直接在数组里添加就行,代码更易维护。
- 通过
你可以把这个脚本替换到你的示例文档里测试,完全实现你要的效果:带复选框的黑底白字标题,下面是可展开的项目符号,所有内容精准出现在「New Items:」之后~
备注:内容来源于stack exchange,提问作者Marc Golas
相关产品推荐
相关产品推荐

