Apps Script如何获取Web App提交的HTML表单数据并写入Google Sheets
问题排查
- 字段名不匹配:HTML表单中输入框的
name属性是firstname,但后端getData函数中取值用的是data.name,根本无法获取到提交的内容,自然无法写入表格。 - 写入位置逻辑错误:
getCurrentCell()获取的是表格当前被手动选中的单元格,写入位置完全随机,还会覆盖已有数据,需要主动定位到工作表最后一行的下一行作为新数据的写入位置。 - 缺少状态反馈:现有写法提交后用户无法知道提交结果,建议给
google.script.run添加成功、失败回调,方便排查问题。 - 额外注意事项:代码修改后必须重新部署新版本的Web App才会生效,直接保存代码不会更新已发布的服务;同时要确认部署权限配置正确,且表格中确实存在名为
Logs的工作表。
修正后代码
Index.html
<form id="Form" onsubmit="event.preventDefault(); google.script.run .withSuccessHandler(() => alert('提交成功')) .withFailureHandler(err => alert('提交失败:' + err)) .getData(this)"> <input type="text" name="firstname" required> <input type="submit" value="提交"> </form>
Code.gs
function getData(data) { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Logs'); // 取最后一行的下一行作为新数据写入位置 var targetRow = sheet.getLastRow() + 1; sheet.getRange(targetRow, 1).setValue(data.firstname); }
内容的提问来源于stack exchange,提问作者Gamaray
相关产品推荐
相关产品推荐

