[英]Using select multiple to send multiple values to google sheets using google apps script
我正在尝试使用多个选择器使用谷歌应用程序脚本将数据发布到谷歌表,如下所示:
代码.gs:
function doGet() {
return HtmlService.createTemplateFromFile('Form.html').evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
function doPost (e) {
var lock = LockService.getScriptLock();
lock.tryLock(10 * 1000);
try {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getSheetByName("Sheet1");
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
var nextRow = sheet.getLastRow() + 1
var newRow = headers.map(function(header) {
return header === 'Timestamp' ? new Date() : e.parameter[header]
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return HtmlService.createTemplateFromFile('Confirmation.html').evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally { lock.releaseLock() }
}
表格.html:
<!DOCTYPE html>
<html lang="en">
<body>
<form name="myForm" action="https://script.google.com/macros/s/AKfycbwamMCkOCAmwrRDNj8cTqgp3cevm8B9niyrlYa5dnbxP2H3q0o/exec" target="_self" method="POST">
<div>
<select name="M Values" multiple required>
<option value="" disabled selected>Select Value(s)</option>
<option value="M1">M1</option>
<option value="M2">M2</option>
<option value="M3">M3</option>
<option value="M4">M4</option>
<option value="M5">M5</option>
<option value="M6">M6</option>
</select>
</div>
<button type="submit">Send</button>
</form>
</body>
</html>
问题是当用户选择多个选项,例如 M1、M3 和 M5 并单击提交按钮时,我只在工作表中收到 M1,而不是像 M1、M3、M5 那样收到所有选定的值
表: https : //docs.google.com/spreadsheets/d/1FdOH2zU_ZnxB2a7RA_QfO3HdPTRhVhSHo5988a8Au9s/edit?usp=sharing
该表是可编辑的,所以请随意使用。 请任何帮助非常感谢。 提前致谢
我相信你的目标如下。
我认为您的新问题的原因是e.parameter[header]
。 在这种情况下, e.parameter
只是所选值中的一个值。 所以请修改如下。
return header === 'Timestamp' ? new Date() : e.parameter[header]
return header === 'Timestamp' ? new Date() : e.parameters[header].join(",");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.