【发布时间】:2021-11-23 21:14:51
【问题描述】:
我跟随 youtube 视频创建了一个 Google Apps 脚本,该脚本将在提交时自动填充一个 Google 文档(模板),其中包含来自表单的响应作为触发器。我必须添加一些计算列,以根据表单提交中填写的答案进一步计算。我需要将所有列都填入 Google Doc。
我正在粘贴下面的完整代码,我相信我很接近。粗体部分是我知道我需要更新的部分,但我不确定如何更新。目前,该脚本循环遍历所有数据行并为每一行创建一个新的 Google Doc。我需要它从电子表格中找到最后/最新的数据行(将是最新的表单提交)并用该数据填充 Doc。我到处寻找解决方案 - 感谢任何帮助!
function autoFillGoogleDocFromForm(e){
var PersonName = e.values[1];
var Month = e.values [2];
var ShowName = e.values [3];
var Sale = e.values [4];
var BuyType = e.values [5];
var Budget = e.values [6];
var Products = e.values [7];
var TermMonths = e.values [8];
var Title = e.values [9];
var Assets = e.values [10];
var NumberofShows = e.values [11];
var NumberofSales = e.values [12];
var ListSize = e.values [13];
var Agency = e.values [14];
var DataCadence = e.values [15];
var Other = e.values [16];
var AdditionalNotes = e.values [17];
**var rows = SpreadsheetApp.getActiveSpreadsheet().getDataRange().getDisplayValues();
rows.forEach(function(row){
var ContractID = row [18];
var Term = row [19];
var StartDate = row [20];
var EndDate = row [21];
var CustomerCost = row [22];
var CostShow = row [23];
var Cost = row [24];
var TotalEngagements = row [25];
var CostSplit = row [26];
var TotalEmails = row [27];
var CostData = row [28];**
var templateFile = DriveApp.getFileById("9fu1jGgpaQ");
var templateResponseFolder = DriveApp.getFolderById("15h3GnG");
var copy = templateFile.makeCopy('Name' + BrName, templateResponseFolder);
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody();
body.replaceText("{{Name of Manufacturer}}", Manufacturer);
body.replaceText("{{Name of Brand}}", BrandDrugName);
body.replaceText("{{Name of Products}}", ProductsPurchased);
body.replaceText("{{Start Date}}", StartDate);
body.replaceText("{{End Date}}", CalculatedEndDate);
body.replaceText("{{Title of Sponsorship}}", SeriesSponsorshipTitle);
body.replaceText("{{Name Generic}}", ClientAssets);
body.replaceText("{{Number of Videos}}", NumberofVideos);
body.replaceText("{{Cost Video Int}}", CustomerVideoIntegrationCost);
body.replaceText("{{Total Video Eng}}", TotalVideoEngagements);
body.replaceText("{{Video Eng}}", VideoEngSplit);
body.replaceText("{{Video Eng 2}}", VideoEngSplit);
body.replaceText("{{Target List Size}}", TargetListSize);
body.replaceText("{{Cost Video Eng}}", CostVideoEngagement);
body.replaceText("{{Total Email Eng}}", TotalEmailEngagements);
body.replaceText("{{Cost Email Eng}}", CostEmailEngagement);
body.replaceText("{{Target Size}}", TargetSize);
body.replaceText("{{Data Cadence}}", DataCadence);
body.replaceText("{{Cost Data}}", CostDataTransfer);
doc.saveAndClose();
})
}
【问题讨论】:
-
如果您只需要表单中的答案,您可以在
e.values中获得所有答案。您无需使用var rows = ...从电子表格中获取值。
标签: javascript google-apps-script