Javascript 如何将单元格值(谷歌表单中的Sheet1,公式中的Sheet2)获取到谷歌文档模板
我有两张床单。Sheet1来自Google表单,查询到Sheet2,然后生成公式。我想从他们的细胞值到谷歌文档模板,并发送电子邮件。我可以从表1获得值,但不能从表2获得值。请帮我解决这个问题。非常感谢。Javascript 如何将单元格值(谷歌表单中的Sheet1,公式中的Sheet2)获取到谷歌文档模板,javascript,google-apps-script,google-sheets,google-forms,Javascript,Google Apps Script,Google Sheets,Google Forms,我有两张床单。Sheet1来自Google表单,查询到Sheet2,然后生成公式。我想从他们的细胞值到谷歌文档模板,并发送电子邮件。我可以从表1获得值,但不能从表2获得值。请帮我解决这个问题。非常感谢。 函数onFormSubmit(e){ var docs_email=e.values[1]; 变量名称=e.values[2]; var Date1=e.values[3]; var Date2=e.values[4]; var Money1=e.价值[5]; var Money2=e.价值
函数onFormSubmit(e){
var docs_email=e.values[1];
变量名称=e.values[2];
var Date1=e.values[3];
var Date2=e.values[4];
var Money1=e.价值[5];
var Money2=e.价值[6];
//表2中的值
var TotalDate=e.值[7];
var Money3=e.价值[8];
var TotalMoney=e.价值[9];
var copyId=DriveApp.getFileById('Doc ID')//Temp document ID
.makeCopy('报告-'+名称)
.getId();
var copyDoc=DocumentApp.openById(copyId);
copyDoc.getBody()
var copyBody=copyDoc.getActiveSection();
copyBody.replaceText('keyName',Name);
copyBody.replaceText('keyDate1',Date1);
copyBody.replaceText('keyDate2',Date2');
copyBody.replaceText('keyMoney1',Money1');
copyBody.replaceText('keyMoney2',Money2');
copyBody.replaceText('keyTotalDate',TotalDate');
copyBody.replaceText('keyMoney3',Money3');
replaceText('keyTotalMoney',TotalMoney);
copyDoc.saveAndClose();
//转换为pdf
var pdf=DriveApp.getFileById(copyId.getAs(“application/pdf”);
//发送电子邮件
var subject=“您的报告”;
var body=“亲爱的”+Name+“\n\n”+“
这是您的报告”;
sendmail(docs_email,主题,正文,{htmlBody:body,附件:pdf});
}
这个答案怎么样
修改点:
- 为了从“Sheet2”中的“H”列到“J”列检索值,使用了
getValues
- 从你的问题中,我可以理解“H”到“J”列有公式。所以我认为
可能无法直接使用。所以我认为需要检索列“A”的第一个空行getLastRow()
SpreadsheetApp.flush();//这可能不是必需的。
var sheet=e.source.getSheetByName(“Sheet2”);//从“Sheet2”的图纸名称中检索值。
var行=0;
对于(var i=1;i
参考资料:
var TotalDate = e.values[7];
var Money3 = e.values[8];
var TotalMoney = e.values[9];
SpreadsheetApp.flush(); // This might be not required.
var sheet = e.source.getSheetByName("Sheet2"); // Values are retrieved from the sheet name of "Sheet2".
var row = 0;
for (var i = 1; i < sheet.getLastRow(); i++) {
if (sheet.getRange(i, 1).isBlank()) {
row = i - 1;
break;
}
}
var [TotalDate, Money3, TotalMoney] = sheet.getRange(row, 8, 1, 3).getValues()[0];