Excel转JSON:3种实用方法轻松搞定数据格式转换
在数据处理和开发工作中,经常需要将Excel表格中的数据转换为JSON格式,以便于Web应用、API接口或数据分析工具的调用,本文将详细介绍Excel转JSON的几种常用方法,从手动操作到自动化工具,助您高效完成数据格式转换。
Excel转JSON的常见应用场景
在开始转换之前,我们先了解为什么需要将Excel转为JSON:
- 数据交互:前端应用(如JavaScript、React)常通过JSON与后端API交互,Excel作为数据源录入后需转换为JSON;
- 配置文件:游戏、软件中的配置数据可用Excel管理,最终转为JSON供程序读取;
- 数据迁移:将结构化的Excel数据导入到支持JSON的数据库(如MongoDB)中;
- 接口测试:快速生成测试用的JSON请求数据,提升开发效率。
Excel转JSON的3种实用方法
方法1:手动转换(适合少量数据)
适用场景:Excel表格结构简单,数据量较小(几十行以内),且无需频繁转换。
操作步骤:
-
整理Excel结构:确保Excel第一行为表头(字段名),后续行为对应的数据值,避免合并单元格,否则转换时可能出错。
示例表格:
| id | name | age |
|------|------|-----|
| 1 | Alice| 25 |
| 2 | Bob | 30 | -
构建JSON格式:
- 数组形式(常用):将每一行数据转为一个JSON对象,所有对象组成数组。
[ {"id": 1, "name": "Alice", "age": 25}, {"id": 2, "name": "Bob", "age": 30} ] - 对象形式(以第一列值为键):若第一列是唯一标识(如ID),可转为键值对对象。
{ "1": {"id": 1, "name": "Alice", "age": 25}, "2": {"id": 2, "name": "Bob", "age": 30} }
- 数组形式(常用):将每一行数据转为一个JSON对象,所有对象组成数组。
-
复制粘贴:根据上述结构,手动将Excel数据逐行转换为JSON字符串,或使用Excel公式辅助生成(如
=CONCATENATE("{""", A1, """:""", B1, """,""age"":", C1, "}"),但效率较低)。
优点:无需工具,灵活可控;缺点:数据量大时易出错,耗时费力。
方法2:使用在线转换工具(适合快速、临时转换)
适用场景:不涉及敏感数据,需要快速转换,且无需批量处理。
推荐工具:
- Convertio(https://convertio.co/excel-json/)
- Aconvert(https://www.aconvert.com/cn/excel-to-json/)
- Excel to JSON Online(https://jsonconverter.rapidapi.com/)
操作步骤(以Convertio为例):
- 打开Convertio官网,点击“选择文件”上传Excel表格(支持
.xlsx、.xls格式); - 选择目标格式为“JSON”;
- 点击“转换”,等待完成后下载JSON文件。
注意事项:
- 上传文件前检查Excel是否已整理好表头和数据;
- 避免上传包含个人隐私或敏感信息的文件,以防数据泄露。
优点:操作简单,无需安装软件;缺点:依赖网络,文件大小受限,不适合处理机密数据。
方法3:使用代码/库自动化转换(适合开发者或批量处理)
适用场景:数据量大、需频繁转换,或需集成到开发流程中(如自动化脚本)。
(1)Python方案(推荐)
Python的pandas和json库可轻松实现Excel转JSON,适合数据分析场景。
安装依赖:
pip install pandas openpyxl
示例代码:
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx', engine='openpyxl') # 若是旧版.xls,用 engine='xlrd'
# 转换为JSON(orient='records'表示数组形式,每行一个对象)
json_data = df.to_json(orient='records', force_ascii=False) # force_ascii=False支持中文
# 保存到文件
with open('output.json', 'w', encoding='utf-8') as f:
f.write(json_data)
print("转换完成!")
参数说明:
orient:可选'records'(数组)、'values'(纯值数组)、'index'(以行号为键)等;force_ascii:设为False可避免中文被转义为Unicode。
(2)JavaScript/Node.js方案
若项目为前端或Node.js环境,可使用exceljs或xlsx库。
安装依赖:
npm install xlsx
示例代码:
const XLSX = require('xlsx');
// 读取Excel文件
const workbook = XLSX.readFile('data.xlsx');
const sheetName = workbook.SheetNames[0]; // 获取第一个工作表
const worksheet = workbook.Sheets[sheetName];
// 转换为JSON(XLSX.utils.sheet_to_json默认转数组)
const jsonData = XLSX.utils.sheet_to_json(worksheet);
// 保存到文件(Node.js环境需fs模块)
const fs = require('fs');
fs.writeFileSync('output.json', JSON.stringify(jsonData, null, 2));
console.log("转换完成!");
优点:自动化程度高,可定制化强,适合批量处理;缺点:需具备编程基础。
转换中的常见问题与解决方法
-
表头与数据不匹配
原因:Excel中存在合并单元格、空表头或多余空行。
解决:转换前清理表格,确保第一列为字段名,且每列数据类型一致。 -
中文乱码
原因:工具或代码未指定UTF-8编码。
解决:在线工具选择“UTF-8编码”;代码中添加encoding='utf-8'(Python)或JSON.stringify(jsonData, null, 2)(JS)。 -
日期格式异常
原因:Excel中的日期在JSON中可能转为数字(如序列值)。
解决:Python中用df['date_column'] = pd.to_datetime(df['date_column']).dt.strftime('%Y-%m-%d')格式化日期;JS中用new Date()处理。 -
数据丢失
原因:Excel中的公式、图片、图表等内容无法直接转为JSON。
解决:仅保留纯数据单元格,或提前提取公式结果(选择性粘贴为数值)。
Excel转JSON的方法需根据实际需求选择:
- 少量数据/临时使用:手动转换或在线工具;
- 批量处理/开发集成:Python/JavaScript代码自动化。
无论哪种方法,核心都是确保Excel数据结构清晰(表头+规范数据),这样才能高效、准确地生成符合需求的JSON文件,这些技巧,可让您在数据处理中事半功倍!



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