首页 > 解决方案 > replaceText 在一个实例中工作,但在另一个实例中不工作

问题描述

该脚本在提交 Google 表单并自动填写 Google 文档时触发。

在我完美地添加var servicesPTY = e.values[117];和替换所有占位符之前,它运行良好。但是一旦我添加它,执行指示器就会显示已完成,但不再生成任何文档。该文档具有如下所示的占位符:{{servicesPTY}} {{regNumberPTY}} {{tradingNamePTY}}

代码如下所示:

function myFormSubmitPTY(e) {

  var regNumberPTY = e.values[112];
  var taxNumberPTY = e.values[111];
  var tradingNamePTY = e.values[113];
  var servicesPTY = e.values[117];

var file = DriveApp.getFileById("16OwyBIZAD2pwkuUXZnYSj-9WB6ObGGRXiEjDLa1tcjw");

  var folder = DriveApp.getFolderById("1kogpJdxHLwuEhbVyh2oiIgTPH0SNac2m");

  var copy = file.makeCopy(tradingNamePTY, folder);

  var doc = DocumentApp.openById(copy.getId());

  var body = doc.getBody();

  if (type == "PTY (LTD)") {

  body.replaceText("{{servicesPTY}}",servicesPTY);
  body.replaceText("{{regNumberPTY}}", regNumberPTY);
  body.replaceText("{{tradingNamePTY}}", tradingNamePTY);


  doc.saveAndClose();
  }
}

标签: google-apps-scriptgoogle-drive-apigoogle-docsgoogle-forms

解决方案


这对我有用:

function testmyFormSubmit() {
  var e={values:["one","two","three","four"]};
  myFormSubmitPTY(e);
}

var type="PTY (LTD)";//global

function myFormSubmitPTY(e) {
  var regNumberPTY = e.values[0];
  var taxNumberPTY = e.values[1];
  var tradingNamePTY = e.values[2];
  var servicesPTY = e.values[3];
  var file = DriveApp.getFileById("fileid");
  var folder = DriveApp.getFolderById("folderid");
  var copy = file.makeCopy(tradingNamePTY, folder);
  var doc = DocumentApp.openById(copy.getId());
  var body = doc.getBody();
  if (type=="PTY (LTD)") {
    body.replaceText("{{servicesPTY}}",servicesPTY);
    body.replaceText("{{regNumberPTY}}", regNumberPTY);
    body.replaceText("{{tradingNamePTY}}", tradingNamePTY);
    doc.saveAndClose();
  }
}

文件名:三

图案顺序:

{{servicesPTY}}

{{regNumberPTY}}

{{tradingNamePTY}}

输出顺序:


推荐阅读