如何将Excel转为JSON格式:实用方法与工具指南
在数据处理和开发工作中,Excel与JSON是两种常用的数据格式——Excel擅长表格化存储和人工编辑,JSON则是Web开发中数据交换的“通用语言”,将Excel转为JSON,能更方便地与前端、API或数据库集成,本文将介绍手动转换、代码转换、工具转换三种主流方法,覆盖不同需求场景,助你高效完成格式转换。
为什么需要将Excel转为JSON?
在开始转换前,先明确两个场景的差异:
- Excel:以二维表格结构存储数据,适合人工录入、批量计算和可视化分析,但直接用于程序开发时,需解析格式(如
.xlsx、.csv),灵活性较低。 - JSON:轻量级的数据交换格式,以键值对(
key:value)和嵌套结构存储,天然适配JavaScript、Python等语言,能直接被前端或API调用,无需额外解析。
常见转换需求:
- 前端从后端获取数据时,需JSON格式渲染页面;
- 数据库导入导出时,用JSON实现跨平台兼容;
- 开发中需将配置表(如用户信息、商品列表)从Excel转为JSON,供程序调用。
方法1:手动转换(适合小量数据,无需工具)
如果你的Excel数据量小(如10行以内),且不需要频繁转换,手动复制粘贴+微调是最直接的方式。
操作步骤:
-
整理Excel结构:确保Excel是标准的二维表,第一行是字段名(作为JSON的key),下方是对应的值(作为JSON的value)。
| id | name | age |
|------|------|-----|
| 1 | 张三 | 20 |
| 2 | 李四 | 25 | -
转换为JSON格式:
- 将Excel数据转为“字典列表”格式(最常用,适合单层结构),即每个对象对应一行数据,key为字段名,value为对应值。
- 示例转换结果:
[ {"id": 1, "name": "张三", "age": 20}, {"id": 2, "name": "李四", "age": 25} ]
-
验证JSON格式:手动转换后,可用在线JSON格式化工具(如JSONFormatter)检查语法是否正确(如引号、逗号、括号匹配)。
优点:
- 无需工具,直接操作;
- 适合临时、小量数据,能直观控制格式。
缺点:
- 数据量大时(如100行以上),效率低且易出错;
- 无法处理复杂嵌套结构(如Excel中的“合并单元格”需提前拆分)。
方法2:代码转换(适合开发者,灵活可控)
如果你是开发者,或有批量转换需求,用代码实现是最灵活的方式——支持自定义JSON结构、处理复杂数据,且可集成到自动化流程中,以下是Python的实现方案(Python的pandas和json库是处理表格和JSON的利器)。
准备工作:
安装必要的库:
pip install pandas openpyxl # openpyxl用于读取.xlsx文件
示例代码:
假设Excel文件data.xlsx内容如下:
| id | name | courses | age |
|------|------|----------------------------------|-----|
| 1 | 张三 | ["数学", "英语"] | 20 |
| 2 | 李四 | {"主修": "物理", "选修": "化学"} | 25 |
场景1:简单二维表转JSON(字典列表)
import pandas as pd
import json
# 读取Excel文件(sheet_name默认为第一个sheet)
df = pd.read_excel("data.xlsx")
# 转换为字典列表(每行一个字典,列名为key)
data = df.to_dict(orient="records") # orient="records"指定输出为列表格式
# 保存为JSON文件(ensure_ascii=False避免中文乱码,indent=2格式化缩进)
with open("output.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print("转换完成!")
输出结果output.json:
[
{
"id": 1,
"name": "张三",
"courses": ["数学", "英语"],
"age": 20
},
{
"id": 2,
"name": "李四",
"courses": {
"主修": "物理",
"选修": "化学"
},
"age": 25
}
]
场景2:自定义JSON结构(如嵌套对象)
如果Excel中的某一列是JSON字符串(如courses列),需先解析为Python对象,再转为JSON:
import pandas as pd
import json
df = pd.read_excel("data.xlsx")
# 将"courses"列的JSON字符串转为Python对象(如果是字符串格式)
df["courses"] = df["courses"].apply(lambda x: json.loads(x) if isinstance(x, str) else x)
data = df.to_dict(orient="records")
with open("output_nested.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
输出结果会保留嵌套结构(如courses转为对象或数组)。
优点:
- 支持批量处理,适合大数据量;
- 可自定义JSON结构(如嵌套、字段过滤);
- 能集成到自动化脚本中(如定时转换Excel并上传到服务器)。
缺点:
- 需要编程基础;
- 处理复杂格式(如日期、公式)时需额外代码(如用
pd.to_datetime()转换日期)。
方法3:工具转换(适合非开发者,无需代码)
如果你不熟悉编程,或希望快速转换,在线工具或桌面软件是最便捷的选择,以下是几款常用工具:
在线转换工具(无需安装,适合临时使用)
- ConvertCSV(https://www.convertcsv.com/excel-to-json.htm):
上传Excel文件,选择“JSON”格式,支持自定义JSON结构(如是否包含字段名、是否转义特殊字符),点击“Convert”即可下载结果。 - Asoft Online Excel to JSON(https://asoftonline.com/excel-to-json/):
界面简洁,支持预览转换结果,可直接复制JSON代码或下载文件。 - Code Beautify(https://codebeautify.org/excel-to-json-converter):
除基本转换外,还支持JSON格式化、压缩,适合需要进一步编辑的场景。
桌面软件(适合离线或敏感数据)
- Microsoft Excel(内置功能):
- 打开Excel文件,点击“文件”→“另存为”,选择“JSON(*.json)”格式;
- 保存后,Excel会生成一个JSON文件,但需注意:此方法生成的JSON结构可能不符合开发需求(如嵌套较浅),适合简单场景。
- Tabula(https://tabula.technology/):
专为表格数据设计,支持从PDF、Excel中提取数据并转为JSON,适合处理复杂表格(如合并单元格需先“取消合并”)。
浏览器插件(适合Chrome/Firefox用户)
- Excel to JSON Converter(Chrome插件):
在Chrome应用商店搜索安装后,打开Excel文件,点击插件图标即可直接转换,结果可在页面预览或下载。
优点:
- 无需编程,操作简单;
- 适合非开发者或临时转换需求。
缺点:
- 在线工具需上传文件,存在数据隐私风险(避免上传敏感信息);
- 桌面软件功能有限,难以处理复杂嵌套或批量转换。
常见问题与注意事项
Excel字段名与JSON key的映射
- 确保Excel第一行是“有效字段名”(不含空格、特殊字符,如用
user_name而非user name); - 若字段名需调整,可在Excel中提前修改,或代码中用
df.rename(columns={"旧字段": "新字段"})重命名。
处理Excel中的特殊数据
- 日期:Excel中的日期会存储为数字(如44927代表2023-1-1),转换时需用
pd.to_datetime()格式化:df["date"] = pd.to_datetime(df["date"]).dt.strftime("%Y-%m-%d")



还没有评论,来说两句吧...