Google Script将表单数据导入新电子表格,然后以PDF格式发送

时间:2012-11-28 15:10:26

标签: google-apps-script google-sheets google-form

谢谢大家这个很棒的资源。我是google脚本的新手,对我帮助很大。

我正在尝试创建一个脚本,该脚本会获取Google表单信息,创建新电子表格,将该数据导入新电子表格以进行计算并制作图表,然后通过电子邮件将该表单的PDF发送给表单用户。

我以为我越来越近了,但遇到了一个问题。 数据导入到新的电子表格中,但数据未显示在我的电子邮件中的PDF中。

几个问题; 您是否看到我可以对我的代码进行任何更改以帮助PDF显示数据? 是否有更好或更简单的方法来完成我想要做的事情?

谢谢!

//Template Info
  var docTemplate = "myssID";

  var docName = "MotionControlReport";

function formSubmitCreate(e) {

  //Variables

  var userOrientation = e.values[1];
  var userStroke = e.values[2];
  var userStrokeUnits = e.values[3];
  var userName = e.values[11];
  var userCompany = e.values[12];
  var userEmail = e.values[13];
  var userPhone = e.values[14];

  //Template Info
  var copyId = DocsList.getFileById(docTemplate).makeCopy(docName+' for '+userName).getId();
  var copyDoc = SpreadsheetApp.openById(copyId);
  var copyBody = copyDoc.getActiveSheet();

  copyBody.getRange(1, 1).setValue(userName);
  copyBody.getRange(1, 2).setValue(userCompany);
  copyBody.getRange(1, 3).setValue(userEmail);
  copyBody.getRange(1, 4).setValue(userPhone);
  copyBody.getRange(1, 5).setValue(userOrientation);
  copyBody.getRange(1, 6).setValue(userStroke);
  copyBody.getRange(2, 6).setValue(userStrokeUnits);

  //Save as PDF and send e-mail
  var pdf = DocsList.getFileById(copyId).getAs("application/pdf");
  var subject = "Motion Control Report";
  var body = userName + ",  Thank you very much for using our online Linear Motion Sizing Tool.";
  MailApp.sendEmail(userEmail, subject, body, {htmlBody: body, attachments: pdf});
  //Deletes temporary Document
  DocsList.getFileById(copyId).setTrashed(true);
}

1 个答案:

答案 0 :(得分:3)

您忘记刷新电子表格,并且数据会从缓存中保存一段时间,而不是转换为PDF。 我检查了你的代码(使用刷新),它运行良好,并从表格中为我邮寄正确的数据。

SpreadsheetApp()。冲洗()