javascript - 如何获取单元格值(来自 Google 表单的 Sheet1,来自公式的 Sheet2)到谷歌文档模板
问题描述
我有 2 张纸。Sheet1 来自 Google Form 并将它们查询到 Sheet2 然后制作公式。我想从他们那里获取单元格值到 Google Doc 模板并发送电子邮件。我可以从 Sheet1 中获取值,但不能从 Sheet2 中获取值。请帮我解决这个问题。谢谢你。 在此处输入图像描述 在此处 输入图像描述
function onFormSubmit(e){
var docs_email = e.values[1];
var Name = e.values[2];
var Date1 = e.values[3];
var Date2 = e.values[4];
var Money1 = e.values[5];
var Money2 = e.values[6];
//Values from Sheet2
var TotalDate = e.values[7];
var Money3 = e.values[8];
var TotalMoney = e.values[9];
var copyId = DriveApp.getFileById('Doc ID') //Temp document ID
.makeCopy('Report-'+Name)
.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);
copyBody.replaceText('keyTotalMoney', TotalMoney);
copyDoc.saveAndClose();
//convert to pdf
var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");
//Send the email
var subject = "Your Report";
var body = "Dear " +Name+" \n\n"+"<br> This is your report";
GmailApp.sendEmail(docs_email, subject, body,{htmlBody: body, attachments: pdf});
}
解决方案
这个答案怎么样?
修改点:
- 为了从“Sheet2”中的“H”到“J”列中检索值,
getValues
使用。 - 从您的问题中,我可以理解“H”到“J”列具有公式。所以我认为
getLastRow()
可能无法直接使用。所以我认为需要在“A”列检索第一个空行。
当以上几点反映到您的脚本时,它变成如下。
修改后的脚本:
请按如下方式修改您的脚本。
从: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];
参考:
推荐阅读
- amazon-quicksight - 如何根据 Amazon Quicksight 中的子记录对记录进行分组
- c - c - execl`d 程序不返回提示
- elasticsearch - 如何在 Kibana 中编写一个匹配字段前 4 位数字的字段?
- javascript - 在 react-grid-layout 的布局对象中切换静态键布尔值会导致所有网格项目不正确地移动
- r - R magick:方形裁剪和圆形蒙版
- azure-aks - 使用 Azure 上的 AMLS 的内部负载均衡器预配 AKS
- python-3.x - 这个 Tkinter 程序有什么问题
- laravel - 在集合上使用 WhereRaw 会忽略关系
- flutter - 渡槽模板 db_and_auth 未呈现登录表单
- android - Android-Webrtc:AndroidVideoDecoder 的 copyI420Buffer() 中出现断言错误