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

Excel转嵌套结构JSON的自动化转换方案咨询

Excel转嵌套结构JSON的自动化转换方案咨询

嗨,我来给你分享几个实用的自动化方案,不管用Python还是JS都能轻松搞定这个Excel转嵌套JSON的需求,甚至C#/Java也有对应的工具可选,下面详细说下步骤和代码示例:

Python 实现方案

Python这边最顺手的工具就是pandas(处理表格数据)搭配openpyxl(读取xlsx格式文件),步骤很清晰:

  1. 先安装依赖包:
pip install pandas openpyxl
  1. 编写转换脚本,核心逻辑是读取Excel每行数据,根据Conversion类型构建嵌套结构:
import pandas as pd
import json

# 读取Excel文件(替换成你的文件路径)
df = pd.read_excel("your_file.xlsx", engine="openpyxl")

result = []
for _, row in df.iterrows():
    # 基础字段构建
    item = {
        "Old Field Name": row["Old Field Name"],
        "Old Field Label": row["Old Field Label"],
        "New Field Label": row["New Field Label"],
        "New Field Name": row["New Field Name"]
    }
    
    # 处理Conversion部分(判断是否有转换规则)
    if pd.notna(row.get("Conversion Method")):
        conversion = []
        method = row["Conversion Method"]
        conv_item = {"Method": method}
        
        if method == "Mapping":
            # 假设Excel里Mapping是用换行分隔的条目,可根据实际格式调整分割符
            mappings = str(row["Mapping"]).split("\n")
            conv_item["Mapping"] = [m.strip() for m in mappings if m.strip()]
        elif method == "CONCAT":
            conv_item["Conversion"] = row["Conversion"]
        
        conversion.append(conv_item)
        item["Conversion"] = conversion
    
    result.append(item)

# 输出JSON文件
with open("output.json", "w", encoding="utf-8") as f:
    json.dump(result, f, indent=2, ensure_ascii=False)

注意:你需要根据实际Excel里的列名(比如Conversion Method、Mapping、Conversion这些列的表头)调整代码里的键名,还有Mapping条目的分隔符(如果是用分号分隔就改成split(";"))。

JavaScript(Node.js)实现方案

Node.js环境下可以用SheetJS的xlsx库来读取Excel,步骤如下:

  1. 初始化项目并安装依赖:
npm init -y
npm install xlsx
  1. 编写转换脚本:
const XLSX = require('xlsx');
const fs = require('fs');

// 读取Excel文件
const workbook = XLSX.readFile('your_file.xlsx');
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
const data = XLSX.utils.sheet_to_json(worksheet);

const result = [];

data.forEach(row => {
    // 构建基础字段
    const item = {
        "Old Field Name": row["Old Field Name"],
        "Old Field Label": row["Old Field Label"],
        "New Field Label": row["New Field Label"],
        "New Field Name": row["New Field Name"]
    };

    // 处理Conversion逻辑
    if (row["Conversion Method"]) {
        const conversion = [];
        const method = row["Conversion Method"];
        const convItem = { Method: method };

        if (method === "Mapping") {
            // 按实际分隔符分割Mapping条目,这里假设是换行
            const mappings = row["Mapping"].split("\n").map(m => m.trim()).filter(m => m);
            convItem.Mapping = mappings;
        } else if (method === "CONCAT") {
            convItem.Conversion = row["Conversion"];
        }

        conversion.push(convItem);
        item.Conversion = conversion;
    }

    result.push(item);
});

// 写入JSON文件
fs.writeFileSync('output.json', JSON.stringify(result, null, 2), 'utf8');

同样要注意根据Excel的实际列名调整代码里的键名,确保和表头一致。

其他语言备选方案

  • C#:可以用EPPlus库来读取Excel,然后通过循环行数据构建匿名对象或实体类,最后用Newtonsoft.Json序列化输出。
  • Java:使用Apache POI读取Excel文件,然后通过HashMap构建JSON结构,再用Jackson或Gson库序列化。

这些方案都能自动化完成你需要的嵌套JSON转换,核心都是先读取Excel的结构化数据,再根据每行的规则构建对应的嵌套结构,最后输出JSON文件~

备注:内容来源于stack exchange,提问作者Subhampreet Mohanty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:50:31