Excel转嵌套结构JSON的自动化转换方案咨询
Excel转嵌套结构JSON的自动化转换方案咨询
嗨,我来给你分享几个实用的自动化方案,不管用Python还是JS都能轻松搞定这个Excel转嵌套JSON的需求,甚至C#/Java也有对应的工具可选,下面详细说下步骤和代码示例:
Python 实现方案
Python这边最顺手的工具就是pandas(处理表格数据)搭配openpyxl(读取xlsx格式文件),步骤很清晰:
- 先安装依赖包:
pip install pandas openpyxl
- 编写转换脚本,核心逻辑是读取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,步骤如下:
- 初始化项目并安装依赖:
npm init -y npm install xlsx
- 编写转换脚本:
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
相关产品推荐
相关产品推荐

