如何从多个表中获取列值

ny6fqffe  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(311)

我有一个从google表单创建google文档的工作脚本,但我想将其中一个值更改为sheet2。我正在使用sheet2=清洁一列,因为在sheet1的第3列中我无法消除换行符。我为下面的一个简单表单/doc复制了我的脚本以进行测试。我希望var title从第2页的第5列而不是第1页的第3列中提取值。或者也许有更好的方法来解决我在模板中创建的文档中仍然存在的换行符的格式问题?

function autoFillGoogleDocFromForm(e) {

  var timestamp = e.values[0];
  var firstName = e.values[1];
  var lastName = e.values[2];
  var title = e.values[3];

  var templateFile = DriveApp.getFileById("17HH3zii-MfT3vl7-JU9Xx8XNgWpPAcNG5244iJHnzo0");
  var templateSubmittedFolder = DriveApp.getFolderById("1QNaCCyueyLvcuB7w8wkYvjt-OW75scPP");

  var copy = templateFile.makeCopy(lastName + ',' + firstName, templateSubmittedFolder);

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

  var body = doc.getBody();

  body.replaceText("{{FirstName}}", firstName);
  body.replaceText("{{LastName}}", lastName);
  body.replaceText("{{Title}}", title);

  var currentDate = new Date();   

  doc.saveAndClose();

}
xggvc2p6

xggvc2p61#

根据你所提供的,一个小的改变是必要的。而不是

var title = e.values[3];

只需添加一个replace就可以删除所有不可打印的文本

var title = e.values[3].replace(/[^\x20-\x7E]/g, '');

下面是编辑的完整代码。祝你好运!

function autoFillGoogleDocFromForm(e) {

  var timestamp = e.values[0];
  var firstName = e.values[1];
  var lastName = e.values[2];
  var title = e.values[3].replace(/[^\x20-\x7E]/g, '');

  var templateFile = DriveApp.getFileById("17HH3zii-MfT3vl7-JU9Xx8XNgWpPAcNG5244iJHnzo0");
  var templateSubmittedFolder = DriveApp.getFolderById("1QNaCCyueyLvcuB7w8wkYvjt-OW75scPP");

  var copy = templateFile.makeCopy(lastName + ',' + firstName, templateSubmittedFolder);

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

  var body = doc.getBody();

  body.replaceText("{{FirstName}}", firstName);
  body.replaceText("{{LastName}}", lastName);
  body.replaceText("{{Title}}", title);

  var currentDate = new Date();   

  doc.saveAndClose();

}

相关问题