You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

表单提交后通过AppScript生成已填充发票的技术咨询

表单提交后通过AppScript生成已填充发票的技术咨询

看起来你已经在搭建表单提交后自动生成填充式发票的Google Apps Script方案了,我来帮你拆解下这段代码的逻辑,还有一些实操时要注意的细节~

首先先看你这段核心代码的功能:

  • 这个BeeSafePopInvoiceFromBookARideForm函数是绑定表单提交触发的处理函数,参数e是表单提交的事件对象,e.values数组按顺序对应你表单里的各个字段:时间戳、邮箱地址、姓名、手机号、乘车日期、乘车时间、乘车人信息。
  • 接下来两行是关键的资源获取:通过文件ID拿到预存的发票模板,再通过文件夹ID指定生成后的发票要保存的位置,这一步要确保你填的ID是正确的,而且运行脚本的账号有这两个资源的访问权限,不然会抛出找不到文件/文件夹的错误。

你的现有代码片段如下:

function BeeSafePopInvoiceFromBookARideForm(e) {
    var timestamp = e.values[0];
    var EmailAddress = e.values[1];
    var name = e.values[2];
    var phonenumber = e.values[3];
    var date = e.values[4];
    var Time = e.values[5];
    var thisrideisfor = e.values[6];

    var templatefile = DriveApp.getFileById("13AyC4fpLo-iLDN_CeRmmlgLzJVx2Qj3ZSyLj1XQW2hU");
    var popinvoicefolder = DriveApp.getFolderById("1X__Ph7vxabpxdgbYABMe3W5RqFjYswnA");
    // 这里应该还有复制模板、填充内容、保存新文件的后续逻辑
}

再给你补充几个后续要完善的关键步骤,帮你把整个流程跑通:

  • 复制模板文件:用templatefile.makeCopy(新文件名, popinvoicefolder)来复制模板到目标文件夹,比如可以用name + " " + date + " 乘车发票"作为新文件名,方便后续识别查找。
  • 填充发票内容:打开复制后的文件,用DocumentApp.openById(复制文件的ID)获取文档对象,然后通过body.replaceText方法把模板里的占位符替换成表单提交的实际值,比如模板里写了{{客户姓名}},就用body.replaceText("{{客户姓名}}", name)来完成替换。
  • 配置自动触发:一定要在AppScript编辑器里设置表单提交触发,不然函数不会自动运行——点击左侧的触发器图标,添加触发器,选择“表单提交”事件类型,绑定这个处理函数即可。
  • 权限与测试:手动测试的时候,可以先给函数传入模拟的e对象(或者直接在编辑器里运行函数完成授权),再用真实表单提交测试,确保不会出现权限不足的报错。

内容来源于stack exchange

火山引擎 最新活动