谢谢大家这个很棒的资源。我是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);
}
答案 0 :(得分:3)
您忘记刷新电子表格,并且数据会从缓存中保存一段时间,而不是转换为PDF。 我检查了你的代码(使用刷新),它运行良好,并从表格中为我邮寄正确的数据。
SpreadsheetApp()。冲洗()