You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:54:03