Google apps script 如果Google表单上的某个字段留空,如何创建一个没有打印某些文本的表单信函

Google apps script 如果Google表单上的某个字段留空,如何创建一个没有打印某些文本的表单信函,google-apps-script,Google Apps Script,我的公司最近改用谷歌应用程序,我正试图将Word和Excel文档转换为谷歌文档。我完全不熟悉谷歌应用程序脚本,我被卡住了。我已经找了几天了,但没有找到我要找的东西 我有一个谷歌表格,通过电子邮件发送给销售人员。完成后,谷歌电子表格将更新,然后向销售人员发送一封表格信,汇总他们的输入。表单上的某些字段是可选的。如果问题没有回答,我如何创建一个不包含一些表单字母文本的模板 例如,可选字段之一是客户网站地址,如果客户没有网站,我不希望表单上显示“网站”字样 如果有人对如何做这件事有任何“傻瓜”的指示,

我的公司最近改用谷歌应用程序,我正试图将Word和Excel文档转换为谷歌文档。我完全不熟悉谷歌应用程序脚本,我被卡住了。我已经找了几天了,但没有找到我要找的东西

我有一个谷歌表格,通过电子邮件发送给销售人员。完成后,谷歌电子表格将更新,然后向销售人员发送一封表格信,汇总他们的输入。表单上的某些字段是可选的。如果问题没有回答,我如何创建一个不包含一些表单字母文本的模板

例如,可选字段之一是客户网站地址,如果客户没有网站,我不希望表单上显示“网站”字样

如果有人对如何做这件事有任何“傻瓜”的指示,我将非常感激

谢谢

以下是我到目前为止的情况:

// Business Review Report
// Get template from Google Docs and name it
var docTemplate = "1gRk2irahyW2Sf4pQMTDykXlMQqYgbe1Ba1vkh20KDYo";
var docName = "Business Review";

// When Form Gets submitted
function onFormSubmit (e) {
//Get information from form and set as variables
var variablename = "static entry or form value"
var email_address = e.values[1];
var Business_Name = e.values[2];
var Business_Address = e.values[3];
var Phone_Number = e.values[4]
var Email_address = e.values[5];
var Website = e.values[6];
var Participants = e.values[7];
var Agenda = e.values[8];
var Updates_and_Progress1 = e.values[9]; 
var Updates_and_Progress2 = e.values[10];
var Updates_and_Progress3 = e.values[11]; 
var Current_Issues1 = e.values[12]; 
var Current_Issues2 = e.values[13]; 
var Current_Issues3 = e.values[14]; 
var Next_Steps = e.values[15]; 

// Get document template, copy it as a new temp doc, and save the Doc’s id
var copyId = DocsList.getFileById(docTemplate)
.makeCopy(docName+' for '+ Business_Name)
.getId();

// Open the temporary document
var copyDoc = DocumentApp.openById(copyId);
// Get the document’s body section
var copyBody = copyDoc.getActiveSection();

// Replace place holder keys,in our google doc template
copyBody.replaceText('keyBusinessName', Business_Name);
copyBody.replaceText('keyBusinessAddress', Business_Address);
copyBody.replaceText('keyPhoneNumber', Phone_Number);
copyBody.replaceText('keyEmailaddress', email_address);
copyBody.replaceText('keywebsite', Website);
copyBody.replaceText('keyParticipants', Participants);
copyBody.replaceText('keyAgenda', Agenda);
copyBody.replaceText('keyUpdatesAndProjects1', Updates_and_Progress1);
copyBody.replaceText('keyUpdatesAndProjects2', Updates_and_Progress2);
copyBody.replaceText('keyUpdatesAndProjects3', Updates_and_Progress3);
copyBody.replaceText('keyCurrentIssues1',Current_Issues1);
copyBody.replaceText('keyCurrentIssues2', Current_Issues2);
copyBody.replaceText('keyCurrentIssues3', Current_Issues3);
copyBody.replaceText('keyNextSteps', Next_Steps);

// Save and close the temporary document
copyDoc.saveAndClose();

// Convert temporary document to PDF
var pdf = DocsList.getFileById(copyId).getAs("application/pdf");

// Attach PDF and send the email
var subject = "Business Review";
var body = "Business Review for " + Business_Name + "";
MailApp.sendEmail(email_address, subject, body, {htmlBody: body, attachments: pdf});

// Delete temp file
DocsList.getFileById(copyId).setTrashed(true);

}
它可以工作,但生成的PDF还包括未填充字段(如CurrentIssues2)的文本

我不确定我是否解释得很清楚,所以请回答任何问题,我会尽量说得更清楚

再次感谢,
Lisa

你的表单问题显然有默认值,而你不希望在表单信函中使用这些值。您可以检查这些默认值,并将其替换为更合适的值,例如空白字符串

...
// If website question was not answered, leave blank
var Website = e.values[6];
if (Website == 'website') Website = '';
...
此替代方案使用三元or,并且更紧凑:

...
// If website question was not answered, leave blank
var Website = (e.values[6] == 'website') ? '' : e.values[6];
...

我不完全确定谷歌模板是如何工作的,但看看。。。也许将临时位分解到有条件显示的部分会起作用。(类似于“if(Website!=”){//show-Website-section}”)@Charx感谢您的回复。我现在正在看这个网站。这有点让我不知所措,因为我不知道如何用任何语言编程。我希望我能使用你的链接来帮助我找到一个更初级的解释。但谢谢你给我一个起点。