能否通过编程为Google Forms多道简答题添加对应图片?
Google Apps Script 批量为表单简答题添加图片方案
完全可以通过编程实现批量绑定图片到题目,无需逐题手动上传。你只需要提前把PPT导出的JPG图片上传到Google Drive的同一文件夹,按题目顺序命名即可批量读取绑定。
前置操作
- 将所有导出的题目图片上传到Google Drive单独文件夹,按
q1.jpg、q2.jpg…q25.jpg的规则命名,保证和题目顺序对应 - 打开你用于开发的Google Apps Script项目,在编辑器左侧「服务」栏添加
Drive和Forms服务,确保权限正常
示例代码
function batchAddImageQuestions() { // 替换为你的表单ID,新建表单可改为 const form = FormApp.create("测验表单") const TARGET_FORM_ID = "替换为你的表单ID"; // 替换为存储图片的Google Drive文件夹ID const IMAGE_FOLDER_ID = "替换为你的图片文件夹ID"; const form = FormApp.openById(TARGET_FORM_ID); const imgFolder = DriveApp.getFolderById(IMAGE_FOLDER_ID); const imgFiles = imgFolder.getFilesByType(MimeType.JPEG); // 读取所有图片到数组并按文件名排序 let imageList = []; while (imgFiles.hasNext()) { let file = imgFiles.next(); imageList.push({ fileName: file.getName(), fileBlob: file.getBlob() }); } imageList.sort((a, b) => a.fileName.localeCompare(b.fileName, 'zh-CN', {numeric: true})); // 批量创建带图片的简答题 for (let i = 0; i < imageList.length; i++) { const question = form.addTextItem(); question.setTitle(`第${i+1}题`); // 绑定对应图片到题目 question.setImage(imageList[i].fileBlob); // 如需设置为必答题,取消下方注释 // question.setRequired(true); } }
常见场景调整
- 若你已经提前创建好25道简答题,不需要新建题目,可先用
form.getItems(FormApp.ItemType.TEXT)获取所有简答题数组,再循环调用对应索引题目的setImage()方法绑定图片即可 - 若图片格式为PNG,将
MimeType.JPEG改为MimeType.PNG即可 - 若导出的图片本身已包含题目文字,可删除
setTitle()相关代码,题目仅展示图片即可
内容的提问来源于stack exchange,提问作者Krishna J
相关产品推荐
相关产品推荐

