如何使用按钮在 Google 应用程序制作工具中将 table 导出为 google sheet
How to export a table as google sheet in Google app maker using a button
我已经广泛查看并尝试修改在 Stack Overflow 中的不同帖子以及 Google App Maker 中的模板文档中找到的多个示例代码集,但我终生无法导出并启用电子邮件功能。
用户记录 table:
这是收集和审查数据的区域,人口table:
这些是我正在使用的数据字段:
这就是 exported Sheet 的样子,当我完成动作并通过 Deployment 进行导出时选项卡:
最后,这是我根据我看到的教程和示例构建的电子邮件页面:
到目前为止我学到了什么(基于我要进入的圈子):
电子邮件看起来大多是直截了当的,但我不需要发送消息,只是一个带有主题的附件,类似于使用代码:
function sendEmail_(to, subject, body) {
var emailObj = {
to: to,
subject: subject,
htmlBody: body,
noReply: true
};
MailApp.sendEmail(emailObj);
}
不确定如何将 "body" 更改为导出的文档
- 要通过单击按钮直接导出和查看 Sheet,我发现最接近解决方案的是 Document Sample,但代码中的引用与页面上的组件相关只要。我不确定如何修改它以使用 table,以及如何更改它以将其作为 sheet 而不是文档。
这对某些人来说似乎微不足道,但我是初学者,正在努力思考自己做错了什么。我已经看了将近一个星期了。任何帮助将不胜感激。
在最简单的形式中,您可以使用以下服务器脚本执行 Google sheet 导出(这是基于名为 employees 的模型):
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!');
}
}
我已经广泛查看并尝试修改在 Stack Overflow 中的不同帖子以及 Google App Maker 中的模板文档中找到的多个示例代码集,但我终生无法导出并启用电子邮件功能。
用户记录 table:
这是收集和审查数据的区域,人口table:
这些是我正在使用的数据字段:
这就是 exported Sheet 的样子,当我完成动作并通过 Deployment 进行导出时选项卡:
最后,这是我根据我看到的教程和示例构建的电子邮件页面:
到目前为止我学到了什么(基于我要进入的圈子):
电子邮件看起来大多是直截了当的,但我不需要发送消息,只是一个带有主题的附件,类似于使用代码:
function sendEmail_(to, subject, body) { var emailObj = { to: to, subject: subject, htmlBody: body, noReply: true }; MailApp.sendEmail(emailObj); }
不确定如何将 "body" 更改为导出的文档
- 要通过单击按钮直接导出和查看 Sheet,我发现最接近解决方案的是 Document Sample,但代码中的引用与页面上的组件相关只要。我不确定如何修改它以使用 table,以及如何更改它以将其作为 sheet 而不是文档。
这对某些人来说似乎微不足道,但我是初学者,正在努力思考自己做错了什么。我已经看了将近一个星期了。任何帮助将不胜感激。
在最简单的形式中,您可以使用以下服务器脚本执行 Google sheet 导出(这是基于名为 employees 的模型):
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!');
}
}