【发布时间】:2025-12-23 09:35:11
【问题描述】:
我发现以下脚本可以将表单提交值插入到谷歌电子表格中。
function doPost(e) { // change to doPost(e) if you are recieving POST data
var ss = SpreadsheetApp.openById(ScriptProperties.getProperty('active'));
var sheet = ss.getSheetByName("DATA");
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; //read headers
var headers2 = sheet.getRange(2, 1, 1, sheet.getLastColumn()).getValues()[0]; //read headers
var nextRow = sheet.getLastRow(); // get next row
var cell = sheet.getRange('a1');
var col = 0;
for (i in headers2){ // loop through the headers and if a parameter name matches the header name insert the value
if (headers2[i] == "Timestamp"){
val = new Date();
} else {
val = e.parameter[headers2[i]];
}
cell.offset(nextRow, col).setValue(val);
col++;
}
//http://www.google.com/support/forum/p/apps-script/thread?tid=04d9d3d4922b8bfb&hl=en
var app = UiApp.createApplication(); // included this part for debugging so you can see what data is coming in
var panel = app.createVerticalPanel();
for( p in e.parameters){
panel.add(app.createLabel(p +" "+e.parameters[p]));
}
app.add(panel);
return app;
}
//http://www.google.sc/support/forum/p/apps-script/thread?tid=345591f349a25cb4&hl=en
function setUp() {
ScriptProperties.setProperty('active', SpreadsheetApp.getActiveSpreadsheet().getId());
}
现在我想在每次插入一行时向我的两个同事发送一封格式化的电子邮件。我尝试使用:
var emailAddress = "email@gmail.com"; // First column
var message = "message"; // Second column
var subject = "Sending emails from a Spreadsheet";
MailApp.sendEmail(emailAddress, subject, message);
但它没有发送任何东西..有人可以建议吗?
【问题讨论】:
-
MailApp 是正确的服务,您的代码看起来是正确的。可能是您的代码中某处存在错误,因此请尝试调试问题。
-
值是否被插入到电子表格中?你有任何错误吗?当您为此脚本设置触发器时,如果您同时设置通知,当出现问题时,您可以立即收到电子邮件。
标签: forms submit google-apps-script