Zapier中如何从数组生成按列组织的CSV文件
解决Zapier中按列组织CSV数据的问题
我来帮你搞定这个按列输出CSV的需求!你之前用toCSV生成的是行式CSV(每个对象占一行),但现在需要的是列式CSV(每个字段占一行,对应的值用逗号拼接),我们可以手动构建这个格式,不用依赖默认的toCSV方法。
具体实现代码
直接替换你现有的代码步骤即可:
const lines = JSON.parse(inputData.lines); // 处理空数组的边界情况(可选) if (lines.length === 0) { output = [{csv: ""}]; return; } // 获取所有字段名(这里是Product、Quantity、Flavour) const fields = Object.keys(lines[0]); // 为每个字段收集所有对应的值,并用逗号连接 const columnValues = fields.map(field => { return lines.map(item => item[field]).join(','); }); // 拼接成"字段名: 值1,值2,..."的格式,每行一个字段 const csv = fields.map((field, index) => `${field}: ${columnValues[index]}`).join('\n'); output = [{csv}];
代码解释
- 首先解析输入的数组数据,和你之前的操作一致;
- 用
Object.keys(lines[0])动态获取字段名(即使后续字段有调整,代码也不用改); - 遍历每个字段,收集该字段在所有对象中的值,用逗号拼接成字符串;
- 最后把字段名和对应的值组合成
字段名: 值列表的格式,每行一个字段,用换行符分隔; - 额外加了空数组的判断,避免报错。
输出示例
运行后会生成你需要的格式:
Product: 8",10",10",12" Quantity: 2,1,1,2 Flavour: B Choc,Lemon,Vanilla,Carrot
内容的提问来源于stack exchange,提问作者chrisboat
相关产品推荐
相关产品推荐

