如何创建Deluge函数自动导出Zoho Survey问卷响应至本地表格
实现Deluge函数自动导出Zoho Survey问卷响应到本地电子表格
前置条件
- 拥有Zoho Creator账户(用于编写和运行Deluge函数)
- 已为Zoho Survey配置API权限,确保函数能访问目标问卷的响应数据
- 明确目标问卷的问卷ID(可在Zoho Survey的问卷设置中找到)
核心Deluge函数实现
以下函数会获取指定问卷的所有响应,将其转换为CSV格式并生成可下载的文件,你可以直接在Zoho Creator的函数编辑器中使用:
// 定义目标问卷ID surveyId = "你的问卷ID"; // 获取Zoho Survey的响应数据(分页参数可按需调整) responseData = zoho.survey.getResponses(surveyId, {"page": 1, "per_page": 100}); // 处理响应并生成CSV内容 if (responseData != null && responseData.get("responses") != null) { responses = responseData.get("responses"); // 提取表头(以第一个响应的字段作为列名) if (responses.size() > 0) { firstResponse = responses.get(0); headers = firstResponse.keys().toList(); csvContent = headers.join(",") + "\n"; // 遍历所有响应,拼接每行数据 for each response in responses { row = []; for each header in headers { value = response.get(header); // 处理含逗号的字段,用双引号包裹避免格式错乱 if (value != null && value.contains(",")) { row.add("\"" + value + "\""); } else { row.add(value != null ? value : ""); } } csvContent = csvContent + row.join(",") + "\n"; } // 创建带时间戳的CSV文件 fileParams = { "content": csvContent, "name": "SurveyResponses_" + now.toString("yyyyMMddHHmmss") + ".csv", "type": "text/csv" }; createdFile = file.create(fileParams); // 返回下载链接,用户点击即可保存到本地 return "问卷响应已导出,下载链接:" + createdFile.get("url"); } else { return "当前问卷暂无响应数据"; } } else { return "获取响应失败,请检查问卷ID或API权限"; }
触发方式设置
- 手动触发:在Zoho Creator的表单或页面添加自定义按钮,设置点击事件为执行该函数,用户点击即可生成下载链接
- 自动触发:创建定时任务(如每日/每周定点执行),绑定该函数,实现自动导出
注意事项
- 若问卷响应量较大,需添加分页循环逻辑,逐步获取所有页面的响应数据
- 确保Deluge函数已配置Zoho Survey的API访问权限,必要时在Zoho Creator的连接管理中完成授权
- 可根据需求扩展字段处理逻辑,比如处理换行符、双引号等特殊字符,优化CSV格式兼容性
内容的提问来源于stack exchange,提问作者J. Perez
相关产品推荐
相关产品推荐

