google-apps-script - 如何将 TimeItem 添加到开关盒
问题描述
这是从谷歌表格自动填充谷歌表单的代码,我正在尝试将 timeitem 添加到 switch case 但它不起作用。有什么帮助吗?因为我需要向包含 itemtype 时间的 google 表单发送响应,而 datetime 看起来不像是最合适的 itemtype。这是我为 timeitem 尝试的:
case FormApp.ItemType.TIME:
item= item[i].asTimeItem();
break;
function autoentry() {
//var ss = SpreadsheetApp.getActive();
var id = '11KDxp1C6jAZaTMNlGHke8zEzQ7aZrFSFGABdwUHEV80';
var ss = SpreadsheetApp.openById(id);
var sheet = ss.getSheetByName("Form Responses 1");
var data = ss.getDataRange().getValues(); // Data for pre-fill
var headers = data[0]; // Sheet headers == form titles (questions)
var formUrl = ss.getFormUrl(); // Use form attached to sheet
var form = FormApp.openByUrl(formUrl);
var items = form.getItems();
//var urlCol = headers.indexOf("Prefilled URL"); // If there is a column labeled this
// way, we'll update it
// Skip headers, then build URLs for each row in Sheet1.
for (var row = 1; row < data.length; row++ ) {
//Logger.log("Generating pre-filled URL from spreadsheet for row="+row);
Logger.log("Generating response from spreadsheet for row="+row);
// build a response from spreadsheet info.
var response = form.createResponse();
for (var i=0; i<items.length; i++) {
var ques = items[i].getTitle(); // Get text of question for item
var quesCol = headers.indexOf(ques); // Get col index that contains this
// question
var resp = ques ? data[row][quesCol] : "";
var type = items[i].getType().toString();
Logger.log("Question='"+ques+"', resp='"+resp+"' type:"+type);
// Need to treat every type of answer as its specific type.
switch (items[i].getType()) {
case FormApp.ItemType.TEXT:
var item = items[i].asTextItem();
break;
case FormApp.ItemType.PARAGRAPH_TEXT:
item = items[i].asParagraphTextItem();
break;
case FormApp.ItemType.LIST:
item = items[i].asListItem();
break;
case FormApp.ItemType.MULTIPLE_CHOICE:
item = items[i].asMultipleChoiceItem();
break;
case FormApp.ItemType.CHECKBOX:
item = items[i].asCheckboxItem();
// In a form submission event, resp is an array, containing CSV strings. Join
// into 1 string.
// In spreadsheet, just CSV string. Convert to array of separate choices, ready
// for createResponse().
if (typeof resp !== 'string')
resp = resp.join(','); // Convert array to CSV
resp = resp.split(/ *, */); // Convert CSV to array
break;
case FormApp.ItemType.DATE:
item = items[i].asDateItem();
resp = new Date( resp );
break;
case FormApp.ItemType.DATETIME:
item = items[i].asDateTimeItem();
resp = new Date( resp );
break;
default:
item = null; // Not handling DURATION, GRID, IMAGE, PAGE_BREAK, SCALE,
// SECTION_HEADER, TIME
break;
}
// Add this answer to our pre-filled URL
if (item) {
var respItem = item.createResponse(resp);
response.withItemResponse(respItem);
}
// else if we have any other type of response, we'll skip it
else Logger.log("Skipping i="+i+", question="+ques+" type:"+type);
}
// Submit response
response.submit();
解决方案
推荐阅读
- django-2.0 - 我们可以使用 Django "F" 表达式修改 django 查询集中的值吗?查询优化
- google-apps-script - Google App Script HMAC-SHA-256 错误值
- logstash - Logstash - 如何将字段复制到数组中
- java - 在 Java 接口中将现有方法设为默认值会破坏二进制兼容性
- android - 如何在 mac high sierra 上修复这个 android studio 错误?
- laravel - 安装问题
- python - “Animal”的“foo”没有重载变体匹配参数类型“str”
- sql - 将 SQL 登录迁移到隔离环境
- html - Google 协作平台内部链接
- python - 我有一个长度不同的元组列表,所以我需要遍历列表