告别手动转换!Excel2Json 10倍提升数据处理效率的全攻略
你还在为Excel与JSON格式转换反复手动复制粘贴?还在忍受格式错乱、编码错误、日期格式不统一的折磨?本文将系统带你掌握Excel2Json这款开源工具的全部技能,从基础命令到高级技巧,让数据转换效率提升10倍,彻底解放双手!
读完本文你将获得:
- 3种高效转换模式(命令行/GUI/批量处理)的实战配置
- 15个核心参数的组合运用指南
- 7类常见场景的解决方案(含复杂嵌套JSON处理)
- 完整的C#结构体自动生成教程
- 避坑指南:处理Excel锁定、数据类型冲突等10类问题
项目概述:Excel2Json是什么?
Excel2Json是一款轻量级数据转换工具(GitHub加速计划镜像地址:https://gitcode.com/gh_mirrors/ex/excel2json),专为解决开发流程中Excel表格到JSON格式的自动化转换需求而设计。它支持命令行与图形界面两种操作模式,能处理复杂表头结构、自动识别数据类型,并生成对应的C#数据结构体,特别适合游戏开发、后端接口测试、配置文件生成等场景。
核心功能矩阵
| 功能特性 | 支持版本 | 应用场景 |
|---|---|---|
| 多格式Excel支持 | 1.2.0+ | .xls/.xlsx文件批量转换 |
| 命令行模式 | 全版本 | 自动化脚本集成 |
| GUI可视化操作 | 全版本 | 非技术人员使用 |
| JSON数组/字典双输出 | 全版本 | 不同API数据格式需求 |
| 日期格式自定义 | 1.1.1+ | 国际化项目适配 |
| C#结构体生成 | 1.3.0+ | 强类型开发需求 |
| 单元格JSON解析 | 1.3.0+ | 复杂嵌套数据结构 |
| 表头行数量自定义 | 全版本 | 多层级表头处理 |
技术架构简析
classDiagram
class ExcelLoader {
+Load(string path, int headerRows) DataTable[]
+Sheets DataTable[]
}
class JsonExporter {
+JsonExporter(ExcelLoader, bool lowcase, bool exportArray...)
+SaveToFile(string path, Encoding encoding)
+context string
}
class CSDefineGenerator {
+CSDefineGenerator(string excelName, ExcelLoader, string excludePrefix)
+SaveToFile(string path, Encoding encoding)
}
class MainForm {
+DataManager dataManager
+btnConvert_Click()
}
ExcelLoader --> JsonExporter : 提供数据
ExcelLoader --> CSDefineGenerator : 提供元数据
MainForm --> DataManager : 业务逻辑
DataManager --> ExcelLoader : 加载数据
快速上手:3分钟完成首次转换
环境准备
确保系统已安装.NET Framework 4.5+运行时环境(Windows系统通常预装),直接从项目仓库获取可执行文件或通过源码编译:
# 克隆仓库
git clone https://gitcode.com/gh_mirrors/ex/excel2json.git
cd excel2json
# 编译项目(需安装Visual Studio 2017+)
msbuild excel2json.sln /p:Configuration=Release
命令行极速体验
最基础的转换命令仅需指定Excel文件路径和表头行数:
# 最简命令:转换当前目录下的data.xlsx(默认1行表头)
excel2json.exe -e data.xlsx -h 1
# 完整参数示例:导出为数组格式并指定日期格式
excel2json.exe -e ./tables/items.xlsx -j ./output/items.json -h 2 -a -d "yyyy-MM-dd" -c utf8 -l true
GUI模式操作步骤
- 启动程序后点击"浏览"选择Excel文件
- 在"表头行数"输入框填写表头占用行数(默认1行)
- 勾选"导出为数组"可切换输出格式
- 点击"转换"按钮,结果将自动保存到同目录下同名.json文件
命令行参数全解析
必选参数
| 参数 | 全称 | 说明 | 示例 |
|---|---|---|---|
| -e | --excel | Excel文件路径(必填) | -e D:/data/config.xlsx |
| -h | --header | 表头行数(必填) | -h 2(表示前2行是表头) |
可选参数
| 参数 | 全称 | 默认值 | 说明 |
|---|---|---|---|
| -j | --json | 同目录同名.json | 输出JSON文件路径 |
| -c | --encoding | utf8-nobom | 编码格式(支持gb2312, utf8等) |
| -l | --lowcase | false | 字段名转为小写 |
| -a | --array | false | 导出为数组格式 |
| -d | --date | yyyy/MM/dd | 日期格式化字符串 |
| -s | --sheet | false | 强制包含工作表名 |
| -p | --csharp | null | C#结构体输出路径 |
| -exclude_prefix | --exclude_prefix | 空 | 排除指定前缀的工作表/列 |
| -cell_json | --cell_json | false | 解析单元格内JSON |
参数组合示例
示例1:基础字典格式导出
excel2json.exe -e npc.xlsx -h 1 -j output/npc_dict.json
输出结果(ExampleData.json):
{
"NPC": {
"BS001": {
"ID": "BS001",
"Name": "鬼道士",
"HP": 100,
"Attack": 15
},
"BS002": {
"ID": "BS002",
"Name": "钟馗",
"HP": 352,
"Attack": 22
}
}
}
示例2:数组格式导出
excel2json.exe -e npc.xlsx -h 1 -a -j output/npc_array.json
输出结果(ExampleDataExportArray.json):
[
{
"ID": "BS001",
"Name": "鬼道士",
"HP": 100,
"Attack": 15
},
{
"ID": "BS002",
"Name": "钟馗",
"HP": 352,
"Attack": 22
}
]
示例3:生成C#结构体
excel2json.exe -e items.xlsx -h 2 -p Models/Item.cs
生成代码(ExampleData.cs):
public class Item
{
public string ID; // 编号
public string Name; // 名称
public string AssetName; // 资源编号
}
高级功能实战指南
复杂表头处理
当Excel包含多层表头(如合并单元格或多级标题),通过-h参数指定表头总行数即可自动合并标题:
# 处理3行表头的Excel文件
excel2json.exe -e complex_table.xlsx -h 3 -j result.json
单元格内嵌JSON解析
启用-cell_json参数可自动识别单元格中的JSON内容并解析为嵌套结构:
excel2json.exe -e skills.xlsx -h 1 -cell_json true
原始Excel单元格内容:
{"damage":100,"range":5,"cooldown":2}
转换后JSON结果:
{
"Skill": {
"SK001": {
"ID": "SK001",
"Name": "火球术",
"Props": {
"damage": 100,
"range": 5,
"cooldown": 2
}
}
}
}
数据过滤与筛选
使用-exclude_prefix参数排除包含指定前缀的工作表或列:
# 排除以"#"开头的工作表和列
excel2json.exe -e all_data.xlsx -h 1 -exclude_prefix "#"
日期格式定制
通过-d参数自定义日期格式:
# 导出为"日/月/年 时:分"格式
excel2json.exe -e events.xlsx -h 1 -d "dd/MM/yyyy HH:mm"
常见问题解决方案
1. Excel文件被锁定无法读取
问题:转换时提示"文件被另一个进程占用"
解决:关闭所有打开的Excel窗口,或使用-readonly参数以只读模式打开
2. 数值类型自动转换问题
问题:Excel中的数字被错误转换为浮点数
解决方案:启用-all_string参数强制所有值转为字符串
excel2json.exe -e numbers.xlsx -h 1 -all_string true
3. 大量数据转换效率优化
优化方案:
- 分批次转换多个小文件而非单个大文件
- 使用命令行模式而非GUI
- 禁用不必要的格式检查(如
-cell_json false)
4. 特殊字符处理
问题:JSON中出现乱码或特殊字符无法解析
解决:指定正确的编码参数
# 处理GBK编码的Excel文件
excel2json.exe -e gbk_data.xlsx -h 1 -c gbk
版本演进与新特性
主要版本更新日志
| 版本 | 发布日期 | 关键特性 | 兼容性 |
|---|---|---|---|
| 1.3.0 | 2023 | 恢复C#结构体生成功能 | 兼容所有Excel格式 |
| 1.2.0 | 2022 | 支持.xls/.xlsx全格式 | 需要ExcelDataReader更新 |
| 1.1.1 | 2021 | 增加Reimport按钮,优化数组导出 | 完全兼容旧版本 |
未来版本规划(来自ChangeLog.md)
- 更强大的过滤规则(包含/排除指定前缀)
- 多表关联导出功能
- 自定义数据类型映射
总结与资源
Excel2Json通过简洁的设计解决了开发流程中的实际痛点,无论是小型项目的快速转换需求,还是大型团队的自动化流程集成,都能提供稳定高效的解决方案。项目持续维护更新,完全开源免费,是数据处理环节的得力助手。
实用资源:
- 项目源码:https://gitcode.com/gh_mirrors/ex/excel2json
- 示例文件:项目Docs目录下包含完整示例Excel和输出JSON
- 问题反馈:提交Issue至项目仓库
下期预告:《Excel2Json与Unity集成实战》—— 如何将转换后的数据无缝接入Unity游戏开发流程
如果本文对你有帮助,请点赞、收藏、关注三连,获取更多实用开发工具教程!
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0115
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00