Jquery 用于从表单输入创建gdoc简历的HTML服务应用程序
我一直在为我的公司开发这个应用程序。它基本上从使用HTML服务托管的表单中获取输入,并通过带有输入的文档创建格式化的简历。我遇到的问题是: 在我的HTML表单中,我包含了一个按钮,允许表单添加更多字段(用于职业历史记录)。我编写了一个for循环,循环遍历表单这个特定部分的所有输入,并将它们附加到googledoc。当职业列表>3时,脚本无法将其写入文档 当我在列表上运行记录器(empHist)时,我看到它正在查看所有数据,但它不会将所有数据写入文档。想法 以下是所有代码: 代码.gsJquery 用于从表单输入创建gdoc简历的HTML服务应用程序,jquery,google-apps-script,Jquery,Google Apps Script,我一直在为我的公司开发这个应用程序。它基本上从使用HTML服务托管的表单中获取输入,并通过带有输入的文档创建格式化的简历。我遇到的问题是: 在我的HTML表单中,我包含了一个按钮,允许表单添加更多字段(用于职业历史记录)。我编写了一个for循环,循环遍历表单这个特定部分的所有输入,并将它们附加到googledoc。当职业列表>3时,脚本无法将其写入文档 当我在列表上运行记录器(empHist)时,我看到它正在查看所有数据,但它不会将所有数据写入文档。想法 以下是所有代码: 代码.gs funct
function doGet() {
var html = HtmlService.createTemplateFromFile('page').evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE)
.setTitle('ResuMake Test');
return html
}
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename)
.getContent();
}
function processForm(form) {
var formInput = {
firstName: form.canFirst,
lastName: form.canLast,
sizzle: form.sizzle,
clinDoc: form.clinDoc,
stork: form.stork,
beacon: form.beacon,
anesthesia: form.anesthesia,
empName: form.empName,
empYears: form.empYears,
description: form.description,
school: form.school,
eduYears: form.eduYears,
degree: form.degree
};
var certs = [formInput.clinDoc, formInput.stork, formInput.beacon, formInput.anesthesia];
var empHist = [formInput.empName, formInput.empYears, formInput.description];
var gDoc = DocumentApp.create("Resume for: " + formInput.firstName + " " + formInput.lastName);
var doc = gDoc.getBody();
var img = UrlFetchApp.fetch('http://i.imgur.com/s6wnamr.jpg');
var title = {};
var h1 = {};
var plain = {};
title[DocumentApp.Attribute.FONT_SIZE] = 21;
h1[DocumentApp.Attribute.FONT_SIZE] = 16;
plain[DocumentApp.Attribute.FONT_SIZE] = 11;
//Logo
doc.setMarginTop(25).appendImage(img).setHeight(50).setWidth(150);
doc.appendParagraph(formInput.firstName + " " + formInput.lastName)
.setAlignment(DocumentApp.HorizontalAlignment.CENTER).setAttributes(title);
//Candidate Name
doc.appendParagraph("Candidate Summary").setAttributes(h1);
//Sizzle
doc.appendParagraph(formInput.sizzle).setAttributes(plain);
//Epic Certs
doc.appendParagraph("Epic Certifications").setAttributes(h1);
for (var i = 0; i < certs.length; i++) {
if (certs[i] != null) {
var listItem = doc.appendListItem(certs[i]).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes(plain);
}
}
//Employment History
doc.appendParagraph("Employment History").setAttributes(h1);
for (var e = 0; e <= empHist.length + 1; e++) {
doc.appendTable([[empHist[0][e], empHist[1][e]]]).setAttributes(h1)
.setBorderWidth(0);
doc.appendParagraph(empHist[2][e]).setAttributes(plain);
}
//Education
doc.appendParagraph(formInput.school + " " + formInput.eduYears).setAttributes(h1);
doc.appendParagraph(formInput.degree).setAttributes(h1);
}
函数doGet(){
var html=HtmlService.createTemplateFromFile('page').evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE)
.setTitle(“重新进行试验”);
返回html
}
函数包括(文件名){
返回HtmlService.createHtmlOutFromFile(文件名)
.getContent();
}
函数processForm(form){
变量formInput={
名字:form.canFirst,
姓氏:form.canLast,
sizzle:form.sizzle,
clinDoc:form.clinDoc,
鹳:形态。鹳,
灯塔:形式。灯塔,
麻醉:形式麻醉,
empName:form.empName,
empeyers:form.empeyers,
description:form.description,
学校:形式学校,
教育年限:form.eduYears,
学位:形式学位
};
var certs=[formInput.clinDoc,formInput.stork,formInput.beacon,formInput.Animation];
var empHist=[formInput.empName,formInput.empYears,formInput.description];
var gDoc=DocumentApp.create(“简历为:“+formInput.firstName+”+formInput.lastName”);
var doc=gDoc.getBody();
var img=UrlFetchApp.fetch('http://i.imgur.com/s6wnamr.jpg');
var title={};
var h1={};
var平原={};
标题[DocumentApp.Attribute.FONT\u SIZE]=21;
h1[DocumentApp.Attribute.FONT\u SIZE]=16;
普通[DocumentApp.Attribute.FONT\u SIZE]=11;
//标志
文件setMarginTop(25)、appendImage(img)、setHeight(50)、setWidth(150);
文档附件段落(formInput.firstName+“”+formInput.lastName)
.setAlignment(DocumentApp.HorizontalAlignment.CENTER).setAttributes(标题);
//候选人姓名
文件附录段落(“候选摘要”).setAttributes(h1);
//嘶嘶声
文档附件段落(formInput.sizzle).setAttributes(普通);
//史诗证书
文件附录(“Epic认证”).setAttributes(h1);
对于(变量i=0;i
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<style>
.row {padding: 5px;}
.pad {padding: 8px;}
.body {width: 800px; height: 600px;}
</style>
<div class="container body">
<form id="root">
<div class="row nameRow">
<h3>Candidate Name</h3>
<div class="col-xs-6">
<input type="text" class="form-control" name="canFirst" placeholder="First Name">
</div>
<div class="col-xs-6">
<input type="text" class="form-control" name="canLast" placeholder="Last Name">
</div>
</div>
<div class="row sizlRow">
<h3>Candidate Summary</h3>
<div class="col-sm-4">
<textarea class="form-control" rows="3" placeholder="Candidate Summary" name="sizzle"></textarea>
</div>
</div>
<div class="row modRow">
<h3>Epic Modules</h3>
<div class="col-sm-4">
<label class="checkbox-inline">
<input type="checkbox" name="clinDoc" value="ClinDoc">ClinDoc
</label>
<label class="checkbox-inline">
<input type="checkbox" name="stork" value="Stork">Stork
</label>
<label class="checkbox-inline">
<input type="checkbox" name="beacon" value="Beacon">Beacon
</label>
<label class="checkbox-inline">
<input type="checkbox" name="anesthesia" value="Anesthesia">Anesthesia
</label>
</div>
</div>
<div class="row emphistRow">
<h3>Employment History</h3>
<div class="col-xs-6 pad">
<input type="text" class="form-control input-sm" name="empName" placeholder="Employer / Org">
</div>
<div class="col-xs-6 pad">
<input class="form-control input-sm" name="empYears"type="text" placeholder="Years">
</div>
<div class="container pad">
<textarea class="form-control" name="description" rows="3" placeholder="Job Description"></textarea>
</div>
</div>
<button type="button" id="addEmp" class="btn btn-default">Add Another Job</button>
<div class="row eduRow">
<h3>Education</h3>
<div class="col-xs-6 pad">
<input type="text" class="form-control input-sm" name="school" placeholder="School / Institution">
</div>
<div class="col-xs-6 pad">
<input class="form-control input-sm" name="eduYears" type="text" placeholder="Years">
</div>
<div class="container pad">
<textarea class="form-control" rows="3" name="degree" placeholder="Degree Info"></textarea>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<button type="button" class="btn btn-success btn-block" onclick="google.script.run.processForm(document.getElementById('root'))">resuMake!</button>
</div>
<div class="col-xs-6">
<button type="button" class="btn btn-danger btn-block" onclick="google.script.host.close()">Close</button>
</div>
</div>
</form>
</div>
<script>
google.script.run.processForm();
</script>
<?!= include("script"); ?>
<script>
var orgName = '<div class="col-xs-6 pad">' +
' <input type="text" class="form-control input-sm" name="empName" placeholder="Employer / Org">' +
'</div>' +
'<div class="col-xs-6 pad">' +
' <input class="form-control input-sm" name="empYears" type="text" placeholder="Years">' +
'</div>' +
'<div class="container pad">' +
'<textarea class="form-control" name="description" rows="3" placeholder="Job Description"></textarea>' +
' </div>'
$('#addEmp').click(function(){
var addEmpButton = $(this);
$('.emphistRow').append(orgName);
});
</script>