首页
/ 告别手动转换!Excel2Json 10倍提升数据处理效率的全攻略

告别手动转换!Excel2Json 10倍提升数据处理效率的全攻略

2026-01-20 02:46:53作者:史锋燃Gardner

你还在为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模式操作步骤

  1. 启动程序后点击"浏览"选择Excel文件
  2. 在"表头行数"输入框填写表头占用行数(默认1行)
  3. 勾选"导出为数组"可切换输出格式
  4. 点击"转换"按钮,结果将自动保存到同目录下同名.json文件

GUI操作流程

命令行参数全解析

必选参数

参数 全称 说明 示例
-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游戏开发流程

如果本文对你有帮助,请点赞、收藏、关注三连,获取更多实用开发工具教程!

登录后查看全文
热门项目推荐
相关项目推荐