簡體   English   中英

如何獲取單元格值(來自 Google 表單的 Sheet1,來自公式的 Sheet2)到谷歌文檔模板

[英]How to get the cell values (Sheet1 from Google Form, Sheet2 from Formula) to google doc template

我有 2 張紙。 Sheet1 來自 Google Form 並將它們查詢到 Sheet2 然后制作公式。 我想從他們那里獲取單元格值到 Google Doc 模板並發送 email。 我可以從 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];

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM