Google Forms自动化:数组存储数据后无法填充PDF复选框问题
问题分析与解决
核心问题在于Google Forms的复选框响应返回的是数组类型,而非单个字符串。你当前用== 'Sí'的判断方式,会因为数组和字符串类型不匹配,导致始终返回false,无法正确识别勾选状态。
修改步骤
1. 修正复选框状态判断逻辑
将数组定义中的判断逻辑改为检查响应是否为数组,且包含目标选项文本:
var pertenenciasCocinas = { cafeteraElectrica: Array.isArray(respuestas['Cafetera electrica']) && respuestas['Cafetera electrica'].includes('Sí'), licuadora: Array.isArray(respuestas['Licuadora']) && respuestas['Licuadora'].includes('Sí'), botellonAgua: Array.isArray(respuestas['Botellón de agua']) && respuestas['Botellón de agua'].includes('Sí'), cubiertos: Array.isArray(respuestas['Cubiertos']) && respuestas['Cubiertos'].includes('Sí'), microondas: Array.isArray(respuestas['Microondas']) && respuestas['Microondas'].includes('Sí'), nevera: Array.isArray(respuestas['Nevera']) && respuestas['Nevera'].includes('Sí'), jarronCristal: Array.isArray(respuestas['Jarrón de cristal']) && respuestas['Jarrón de cristal'].includes('Sí'), tablaPicar: Array.isArray(respuestas['Tabla de picar.']) && respuestas['Tabla de picar.'].includes('Sí'), grecaCafetera: Array.isArray(respuestas['Greca o cafetera']) && respuestas['Greca o cafetera'].includes('Sí'), setCocina: Array.isArray(respuestas['Set de cocina']) && respuestas['Set de cocina'].includes('Sí') };
2. 优化填充代码(可选)
原代码重复的if-else可以用循环简化,减少冗余:
// 建立属性与PDF占位符的映射关系 const cocinaMapeo = [ { clave: 'cafeteraElectrica', marcador: '{{CafeteraElectricacotejo}}' }, { clave: 'licuadora', marcador: '{{Licuadoracotejo}}' }, { clave: 'botellonAgua', marcador: '{{BotellonAguaCotejo}}' }, { clave: 'cubiertos', marcador: '{{CubiertosCotejo}}' }, { clave: 'microondas', marcador: '{{MicroondasCotejo}}' }, { clave: 'nevera', marcador: '{{NeveraCotejo}}' }, { clave: 'jarronCristal', marcador: '{{JarronCristalCotejo}}' }, { clave: 'tablaPicar', marcador: '{{TablaPicarCotejo}}' }, { clave: 'grecaCafetera', marcador: '{{GrecaCafeteraCotejo}}' }, { clave: 'setCocina', marcador: '{{SetCocinaCotejo}}' } ]; // 循环处理所有复选框填充 cocinaMapeo.forEach(item => { const marca = pertenenciasCocinas[item.clave] ? '☑' : '☐'; body.replaceText(item.marcador, marca); });
额外检查项
- 确认Google Forms中的选项文本与代码中
respuestas的键完全一致,包括重音符号(如Jarrón)、标点(如Tabla de picar.末尾的点)和大小写。 - 确认PDF模板中的占位符拼写与代码中的字符串完全匹配,避免大小写或字符遗漏。
内容的提问来源于stack exchange,提问作者Alejandro Beltre
相关产品推荐
相关产品推荐

