我是App Script的新手。我正在尝试使用App Script读取提交的数据。我尝试使用here提供的答案,但无法阅读。
我尝试了许多其他方法,但它们也无法正常工作。
function myFunction() {
var form = FormApp.openById('1_HABIBYRZ-zsEMuzMCnsrAOYFlQSKwaIhmeT1y2SY6Y');
var formResponses = form.getResponses();
MailApp.sendEmail ("test@appirio.com", "Form Submited: Foo feedback " + Date.now(), +formResponses);
}
我也想知道如何调试App Script中的任何问题。
预先感谢!
答案 0 :(得分:2)
上面的另一个答案可能有用,但是有点复杂。为了让您将表单响应保留为程序中的变量(可以通过电子邮件将其发送给您),可以执行以下操作:
function formResponsesToArray() {
var app = FormApp.openById(...),
responses = app.getResponses(), stringResponses = []
responses.forEach(function(r) {
var response = []
r.getItemResponses().forEach(function(i) {
response.push(i.getResponse())
})
stringResponses.push(response)
})
Logger.log(stringResponses)
}
这将记录以下一系列响应:
答案 1 :(得分:0)
我建议这样做的方法是将表单响应输入到Google工作表中,然后通过电子邮件中的附件以csv格式导出。像下面这样。确保正确的API(例如Drive API,Gmail API)处于活动状态非常重要,并在需要时将oauthScopes添加到清单中。
编辑我的答案以推荐斯图尔特答案。更清洁,更简单,更高效。
function ExportToCSVCrntMonth(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); //change this to sheet name
// Change the below line to get the folder where you want the CSV files stored.
var folder = DriveApp.createFolder(ss.getName().toLowerCase().replace(/ /g,'_') + '_csv_' + new Date().getTime());
fileName = ss.getName() + ".csv";
var csvFile = convertRangeToCsvFileCrnt_(fileName, ss);
folder.createFile(fileName, csvFile);
var csvmail = folder.getFilesByName('your sheet name + .csv');
MailApp.sendEmail({
to: "your email ere",
subject: "CSV attached",
body: "body text",
attachments: [csvmail.next()]
});
}
function convertRangeToCsvFileCrnt_(csvFileName, ss) {
var activeRange = ss.getDataRange();
try {
var data = activeRange.getValues();
var csvFile = undefined;
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
if (data[row][col].toString().indexOf(",") != -1) {
data[row][col] = "\"" + data[row][col] + "\"";
}
}
if (row < data.length-1) {
csv += data[row].join(",") + "\r\n";
}
else {
csv += data[row];
}
}
csvFile = csv;
}
return csvFile;
}
catch(err) {
Logger.log(err);
Browser.msgBox(err);
}
}