使用Google Apps Script从Google Sheets更新Google表单时如何操作多选网格题型
Google Apps Script 操作Google Form多选网格题型的问题
- 我现在要实现的功能是从Google Sheets同步更新Google Form的题目,目前卡在了一个题型的脚本适配环节:Multiple choice grid(多选网格),找了一圈可用的Google Apps Script操作方法,都没找到支持该题型的相关说明
- 之前翻查官方的ItemType参考文档,只看到了普通多选(multiple choice)的对应枚举值,完全没提多选网格类型要怎么操作
- 我目前已经写出了版本#2的同步逻辑代码,如下:
const populateGoogleForms1 = () => { const GOOGLE_SHEET_NAME = 'sheet_name'; const GOOGLE_FORM_ID = 'form_path'; const ss = SpreadsheetApp.getActiveSpreadsheet(); const [header, ...data] = ss .getSheetByName(GOOGLE_SHEET_NAME) .getDataRange() .getDisplayValues(); const choices = {}; header.forEach((title, i) => { choices[title] = data.map((d) => d[i]).filter((e) => e); }); FormApp.openById(GOOGLE_FORM_ID) .getItems() .map((item) => ({ item, values: choices[item.getTitle()], })) .filter((values) => values) .forEach(({ item, values }) => { switch (item.getType()) { case FormApp.ItemType.CheckboxGrid: item.asCheckboxGridItem().setChoiceValues(values); break; case FormApp.ItemType.Checkbox: item.asCheckboxItem().setChoiceValues(values); break; case FormApp.ItemType.Grid: item.asGridItem().setChoiceValues(values); break; case FormApp.ItemType.List: item.asListItem().setChoiceValues(values); break; case FormApp.ItemType.MultipleChoice: item.asMultipleChoiceItem().setChoiceValues(values); break; case FormApp.ItemType.MultipleChoiceGrid: item.asMultipleChoiceGridItem().setChoiceValues(values); break; default: // 未匹配到对应题型则跳过 } }); ss.toast('Google Form 更新完成!'); };
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

