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

Google App Script技术需求:表单提交后按客户名创建文件夹及文档

表单提交自动创建客户文件夹并生成文档的Google Apps Script解决方案

需求说明

  • 表单提交后,根据提交的客户姓名(如Jane Doe)创建同名文件夹
  • 基于预设的文档模板,生成包含表单信息的文档,并将其放入刚创建的客户文件夹中

代码修正说明

当前代码存在两个核心问题:

  1. 创建的文件夹名称固定为"My New Folder Name",未使用表单提交的客户姓名
  2. 生成的文档仍放入固定的旧文件夹,而非新创建的客户文件夹

以下是修正后的完整代码:

function AutoFillGoogleDocFromForm(e) {
  // 提取表单提交的各项数据
  var timestamp = e.values[0];
  var firstname = e.values[1];
  var lastname = e.values[2];
  var typeofa = e.values[3];
  var role = e.values[4];
  var organization = e.values[5];
  var date = e.values[6];
  var honorific = e.values[7];
  var pronouns1 = e.values[8];
  var pronouns2 = e.values[9];
  var intro = e.values[10];
  var intrv = e.values[11];
  var typeup = e.values[12];
  var test1 = e.values[13];
  var test1r = e.values[14];
  var test2 = e.values[15];
  var test2r = e.values[16];
  var test3 = e.values[17];
  var test3r = e.values[18];
  var test4 = e.values[19];
  var test4r = e.values[20];
  var test5 = e.values[21];
  var test5r = e.values[22];
  var test6 = e.values[23];
  var test6r = e.values[24];
  var test7 = e.values[25];
  var test7r = e.values[26];
  var test8 = e.values[27];
  var test8r = e.values[28];
  var test9 = e.values[29];
  var test9r = e.values[30];

  // 获取父文件夹(存放所有客户文件夹的根文件夹)
  var parentFolder = DriveApp.getFolderById("1k2rUCXQaVLaKeBUsoOUjxR_Ha29u8c_K");
  // 用客户姓名创建新文件夹
  var newFolder = parentFolder.createFolder(firstname + " " + lastname);

  // 获取文档模板
  var templatefile = DriveApp.getFileById("1Y8OVDSlUPva6iGygjttBCsQqhaSQYwplrPhPP_-BJ44");

  // 复制模板到新创建的客户文件夹,并用表单信息命名文档
  var copy = templatefile.makeCopy(organization + '-' + lastname + ', ' + firstname + '-' + role + '-' + date, newFolder);
  // 打开复制后的文档以进行编辑
  var doc = DocumentApp.openById(copy.getId());

  var body = doc.getBody();

  // 替换文档中的所有占位符
  body.replaceText("{{TypeUp}}", typeup);
  body.replaceText("{{Intro}}", intro);
  body.replaceText("{{Intrv}}", intrv);
  body.replaceText("{{Test1}}", test1);
  body.replaceText("{{Test1r}}", test1r);
  body.replaceText("{{Test2}}", test2);
  body.replaceText("{{Test2r}}", test2r);
  body.replaceText("{{Test3}}", test3);
  body.replaceText("{{Test3r}}", test3r);
  body.replaceText("{{Test4}}", test4);
  body.replaceText("{{Test4r}}", test4r);
  body.replaceText("{{Test5}}", test5);
  body.replaceText("{{Test5r}}", test5r);
  body.replaceText("{{Test6}}", test6);
  body.replaceText("{{Test6r}}", test6r);
  body.replaceText("{{Test7}}", test7);
  body.replaceText("{{Test7r}}", test7r);
  body.replaceText("{{Test8}}", test8);
  body.replaceText("{{Test8r}}", test8r);

  body.replaceText("{{FirstName}}", firstname);
  body.replaceText("{{LastName}}", lastname);
  body.replaceText("{{TypeofA}}", typeofa);
  body.replaceText("{{Role}}", role);
  body.replaceText("{{Organization}}", organization);
  body.replaceText("{{Date}}", date);
  body.replaceText("{{Honorific}}", honorific);
  body.replaceText("{{pronoun1}}", pronouns1);
  body.replaceText("{{pronoun2}}", pronouns2);

  // 保存并关闭文档
  doc.saveAndClose();
}

关键代码解释

针对你提出的两行代码,解释如下:

  1. var templateResponneFolder = DriveApp.getFolderById("...")
    这行代码的作用是通过Drive文件夹的唯一ID,获取一个已存在的文件夹对象。在你原来的代码中,复制的文档会被放到这个固定文件夹里,现在我们已经替换成新创建的客户文件夹,所以这行可以删除。

  2. var doc = DocumentApp.openById(copy.getId());
    这行代码会通过复制后的文档ID,打开对应的Google文档对象。只有打开文档后,才能对文档内容进行编辑(比如替换模板中的占位符),编辑完成后需要调用doc.saveAndClose()来保存修改并关闭文档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:05:54