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

如何将基于模板生成的多份Google Docs文档合并为单个文档?

修改Google Apps Script实现批量生成内容合并到单个文档

以下是修改后的代码,可实现将所有从表格读取数据生成的内容合并到同一个Google Docs文档中:

function mergeToSingleDoc() {
  const templateId = "....."; // 替换为你的模板文档ID
  const targetFolderId = "...."; // 替换为要保存合并文档的文件夹ID
  const mergedDocName = "合并后的文档"; // 自定义合并文档的名称

  // 创建合并用的主文档
  const templateFile = DriveApp.getFileById(templateId);
  const mergedFile = templateFile.makeCopy(mergedDocName, DriveApp.getFolderById(targetFolderId));
  const mergedDoc = DocumentApp.openById(mergedFile.getId());
  const mergedBody = mergedDoc.getBody();
  // 清空模板默认内容(不需要保留模板原有内容则保留此行,反之删除)
  mergedBody.clear();

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();

  for (let i = 9; i <= lastRow; i++) {
    // 读取表格对应行的数据
    const a1 = sheet.getRange(i, 1).getValue();
    const a2 = sheet.getRange(i, 2).getValue();
    const a3 = sheet.getRange(i, 3).getValue();

    // 创建临时模板副本用于替换内容
    const tempFile = templateFile.makeCopy("临时文档", DriveApp.getFolderById(targetFolderId));
    const tempDoc = DocumentApp.openById(tempFile.getId());
    const tempBody = tempDoc.getBody();

    // 替换模板中的占位符
    tempBody.replaceText("{......}", a1);
    tempBody.replaceText("{.....}", a2);
    tempBody.replaceText("{....}", a3);

    // 将临时文档的内容复制到主文档
    const elements = tempBody.getChildren();
    for (let j = 0; j < elements.length; j++) {
      mergedBody.appendParagraph(elements[j].copy());
    }
    // 每个条目后添加分页符(不需要分隔页面则删除此行)
    mergedBody.appendPageBreak();

    // 清理临时文件
    tempDoc.saveAndClose();
    tempFile.setTrashed(true);
  }

  // 保存并关闭合并后的文档
  mergedDoc.saveAndClose();
}

关键修改说明

  • 先创建合并主文档:基于模板复制生成,后续所有内容都追加到这个文档中
  • 循环内仅生成临时文档:用于完成数据替换,内容复制到主文档后直接删除,避免生成大量独立文件
  • 内容分隔:每个条目复制完成后添加分页符,让不同内容在独立页面展示(不需要则删除分页符代码)
  • 模板内容清理:如果不需要保留模板原有内容,保留mergedBody.clear();,反之删除该行

注意事项

  1. 替换代码中的templateId和targetFolderId为你自己的文档/文件夹ID
  2. 自定义mergedDocName为你需要的合并文档名称
  3. 确保代码中的占位符{......}、{.....}、{....}与模板中的占位符完全一致

内容的提问来源于stack exchange,提问作者Татьяна Со

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:37:18