Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将单元格值(谷歌表单中的Sheet1,公式中的Sheet2)获取到谷歌文档模板_Javascript_Google Apps Script_Google Sheets_Google Forms - Fatal编程技术网

Javascript 如何将单元格值(谷歌表单中的Sheet1,公式中的Sheet2)获取到谷歌文档模板

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.价值

我有两张床单。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.价值[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”列有公式。所以我认为
    getLastRow()
    可能无法直接使用。所以我认为需要检索列“A”的第一个空行
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 请按如下方式修改您的脚本

发件人: 致:
SpreadsheetApp.flush();//这可能不是必需的。
var sheet=e.source.getSheetByName(“Sheet2”);//从“Sheet2”的图纸名称中检索值。
var行=0;
对于(var i=1;i
参考资料:

@Chontisa感谢您的回复。我很高兴你的问题解决了。也谢谢你。
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];