Power Automate中使用JavaScript实现CSV转JSON的脚本问题求助
问题原因排查
你当前使用的脚本存在以下核心问题:
- 未跳过CSV前5行冗余内容,错误将第一行无效内容识别为表头
- 直接使用逗号分割字段,无法处理带引号、内含逗号的金额字段(比如
"$12,161"会被错误分割为两个字段) - 未定向提取你需要的Total行汇总数据,而是输出了全量数据的JSON数组,和预期格式不符
修正后可用脚本
function main(workbook: ExcelScript.Workbook, csvData: string) { // 按换行分割所有行,先过滤空白行避免干扰 const lines = csvData.split("\n").filter(line => line.trim() !== ""); // 表头固定在第6行,数组下标从0开始,取索引为5的行做表头,清理字段前后空格 const headers = lines[5].split(",").map(header => header.trim()); // 从表头下一行开始遍历所有数据行 for (let i = 6; i < lines.length; i++) { // 用正则匹配处理带引号的CSV字段,避免金额内的逗号被误识别为分隔符 const currentLine = lines[i].match(/(".*?"|[^",]+)(?=\s*,|\s*$)/g); if (!currentLine) continue; // 匹配到Total行直接返回目标格式结果 if (currentLine[0].trim() === "Total") { // 清理金额字段的引号 const totalVal = currentLine[1].replace(/"/g, ''); return JSON.stringify({ total: totalVal }); } } // 未匹配到Total行的兜底返回 return JSON.stringify({ total: "未找到汇总数据" }); }
生效说明
修改后的脚本直接返回你要求的{"total": "$97,551"}格式结果,不需要在Power Automate中做二次解析处理,兼容你提供的CSV样例格式。
内容的提问来源于stack exchange,提问作者Soben
相关产品推荐
相关产品推荐

