我想在我的网站上创建一个表单,当用户提交时,它会将其数据发布到我的Google云端硬盘中的特定电子表格中。如何使用Google App Scripts执行此操作?
样本表格
<form method='post' action='https://script.google.com/macros/s/xxxx.....'>
Favorite Color <input type='text' value='' name='color' />
Favorite Ice Cream Flavor <input type='text' value='' name='flavor' />
<input type='button' value='submit' />
</form>
这样当我点击提交时,它会在Google云端硬盘电子表格中创建一条记录
| color | flavor |
red vanilla
这是否适用于GAS,或者是哪种任务更适合Google Drive SDK(通过Javascript)?
更新
使用How to add form elements to UI App Service中的示例来完成脚本
这是我放在一起的当前剧本......它有效!!!
var SPREADSHEET_ID = '0Aqa6DbU_0sv7dGNrMEEybjNrdm00MlpwTTNx...';
function doPost(e) {
var app = UiApp.getActiveApplication();
SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName('RequestInvites').appendRow([e.parameter.emailAddress, 'hash123']);
app.add(app.createLabel("Form submitted. Your email address is: '" + e.parameter.emailAddress));
return app;
}
function createForm(e){
var app = UiApp.createApplication();
var form = app.createFormPanel();
var flow = app.createFlowPanel();
flow.add(app.createLabel('Enter your email address to get an invitation').setId('inviteLabel'));
flow.add(app.createTextBox().setId('emailAddress').setName('emailAddress'));
flow.add(app.createSubmitButton("Request Invite"));
form.add(flow);
app.add(form);
return app;
}
答案 0 :(得分:2)
你可以用GAS做到这一点。在您的脚本中,当提交按钮(您可能已经忘记;)被阻止时,使用function doPost(e)
检索用户输入。
在doPost功能中,您可以使用“名称”属性访问输入:e.parameter.color
和e.parameter.flavor
。
然后,您可以使用电子表格服务在电子表格中写入。此服务的文档为here。因此,您打开电子表格,并在正确的表格中添加一行:SpreadsheetApp.openById('id of your spreadsheet').getSheetByName('colors_and_flavors').appendRow([e.parameter.color, e.parameter.flavor]);
。
让我们回顾一下:
function doPost(e) {
SpreadsheetApp.openById('id of your spreadsheet').getSheetByName('colors_and_flavors').appendRow([e.parameter.color, e.parameter.flavor]);
}
希望它有所帮助! ;)