我需要创建一个包含3列的Google工作表(A列:名称,B列:性别,C列:电子邮件)
然后,我需要向工作表中添加一个脚本,以创建一个表单(由于某些原因,我无法使用google表单),其中包含我们刚刚在工作表中添加的三个相关问题
我可以执行form.html
代码,但是我对JavaScript在将表单提交到工作表后将其连接到工作表上不太熟悉
我认为是这样的:
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function update spreadsheet {
var sheet = "get active spreadsheet"
...
我无法完成以上代码,有人可以帮我吗?
答案 0 :(得分:1)
您可以将Apps脚本部署为Web App [1]。您需要创建一个html文件[2],在其中放置所需的表单。这里[3]很好地解释了如何使用html中的JavaScript执行Apps脚本功能。最后,在Apps脚本函数中,可以使用SpreadsheetApp类插入所需的值[4]。
这将是在文档中找到的示例代码:
Index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
// Prevent forms from submitting.
function preventFormSubmit() {
var forms = document.querySelectorAll('form');
for (var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', function(event) {
event.preventDefault();
});
}
}
window.addEventListener('load', preventFormSubmit);
function handleFormSubmit(formObject) {
google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
}
function updateUrl(url) {
var div = document.getElementById('output');
div.innerHTML = '<a href="' + url + '">Got it!</a>';
}
</script>
</head>
<body>
<form id="myForm" onsubmit="handleFormSubmit(this)">
<input name="myFile" type="file" />
<input type="submit" value="Submit" />
</form>
<div id="output"></div>
</body>
</html>
code.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile('Index');
}
function processForm(formObject) {
var formBlob = formObject.myFile;
var driveFile = DriveApp.createFile(formBlob);
return driveFile.getUrl();
}
[1] https://developers.google.com/apps-script/guides/web
[2] https://developers.google.com/apps-script/guides/html/
[3] https://developers.google.com/apps-script/guides/html/communication
[4] https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app