我进行了广泛研究,试图修改在Stack Overflow的不同帖子以及Google App Maker中的模板文档中找到的多个示例代码集,但是我一生都无法使用导出和电子邮件功能。
这是收集和检查数据的区域。
这些是我正在使用的字段:
这是我进行动作并通过“部署”选项卡进行导出时导出的工作表的外观:
最后,这是我根据所见的教程和示例构建的电子邮件页面:
到目前为止,我已经学到了什么(基于我要进入的圈子): 1.电子邮件似乎大多是直截了当的,但是我不需要发送邮件,只需发送带有主题的附件,类似于使用代码:
function sendEmail_(to, subject, body) {
var emailObj = {
to: to,
subject: subject,
htmlBody: body,
noReply: true
};
MailApp.sendEmail(emailObj);
}
不确定如何将“正文”更改为导出的文档
这对某些人来说似乎是微不足道的,但我是一个初学者,并且正在努力将自己的头绪笼罩在我做错的事情上。我已经看了将近一个星期了。任何帮助将不胜感激。请不要解雇我! :)
答案 0 :(得分:2)
以最简单的形式,您可以使用以下服务器脚本(基于称为雇员的模型)导出Google表格:
function exportEmployeeTable() {
//if only certain roles or individuals can perform this action include proper validation here
var query = app.models.Employees.newQuery();
var results = query.run();
var fields = app.metadata.models.Employees.fields;
var data = [];
var header = [];
for (var i in fields) {
header.push(fields[i].displayName);
}
data.push(header);
for (var j in results) {
var rows = [];
for (var k in fields) {
rows.push(results[j][fields[k].name]);
}
data.push(rows);
}
if (data.length > 1) {
var ss = SpreadsheetApp.create('Employee Export');
var sheet = ss.getActiveSheet();
sheet.getRange(1,1,data.length,header.length).setValues(data);
//here you could return the URL for your spreadsheet back to your client by setting up a successhandler and failure handler
return ss.getUrl();
} else {
throw new app.ManagedError('No Data to export!');
}
}