Excel怎么保存为JSON?3种实用方法轻松搞定
在日常数据处理中,我们经常需要将Excel表格转换为JSON格式——无论是用于前端数据交互、API接口开发,还是跨系统数据迁移,JSON以其轻量、易读的结构化特性成为首选,但Excel本身并不直接支持“另存为JSON”,怎么办?别担心,本文介绍3种超实用的方法,从手动操作到自动化工具,总有一款适合你!
手动复制粘贴(适合小数据量,无需工具)
如果你的Excel表格数据量不大(比如几十行),且不需要频繁转换,手动复制粘贴是最直接的方式。
操作步骤:
-
整理Excel数据结构
确保Excel表格是“标准二维表”格式:第一行是列名(后续JSON的key),从第二行开始是数据(对应JSON的value)。
| 姓名 | 年龄 | 城市 |
|------|------|------|
| 张三 | 25 | 北京 |
| 李四 | 30 | 上海 | -
转换为JSON格式
- 打开Excel,选中数据区域(包括列名),按
Ctrl+C
复制; - 打开一个文本编辑器(如记事本、VS Code),按
Ctrl+V
粘贴,此时数据是制表符或逗号分隔的文本; - 手动调整格式:将第一行列名用双引号括起来,用冒号连接对应的值(值也要用双引号括起来),行与行之间用逗号分隔,整体用
[]
包裹数组格式。
转换后的JSON效果:[ {"姓名": "张三", "年龄": "25", "城市": "北京"}, {"姓名": "李四", "年龄": "30", "城市": "上海"} ]
- 打开Excel,选中数据区域(包括列名),按
优点:无需安装工具,零门槛;
缺点:数据量大时易出错,效率极低,适合临时应急。
使用Excel内置功能(Excel 2016及以上版本支持)
如果你用的是Excel 2016或Microsoft 365,其实可以通过“从表格/区域创建链接”功能间接生成JSON,不过需要配合“Power Query”实现。
操作步骤:
-
加载数据到Power Query
- 打开Excel表格,选中数据区域,点击顶部菜单栏的“数据”→“从表格/区域”(或按
Ctrl+T
创建表格,勾选“表包含标题”); - 在弹出的“创建表”对话框点击“确定”,会自动跳转到Power Query编辑器。
- 打开Excel表格,选中数据区域,点击顶部菜单栏的“数据”→“从表格/区域”(或按
-
导出为JSON
- 在Power Query编辑器中,点击左上角“文件”→“导出”→“创建连接文件”;
- 选择“JSON文件”,点击“下一步”,设置文件名和保存位置;
- 点击“完成”,Power Query会自动将数据转换为JSON格式并保存。
优点:无需第三方工具,适合Excel内置功能爱好者;
缺点:步骤稍繁琐,仅支持新版Excel,且导出后的JSON可能需要手动微调格式。
用Python自动化转换(推荐大数据量/批量处理)
如果数据量较大(几百行以上)或需要频繁转换,Python是最优选择——几行代码就能搞定,还能自定义JSON格式(如处理日期、数字类型等)。
准备工作:
安装必要的Python库:openpyxl
(读取Excel文件)和json
(生成JSON文件),打开命令行,运行:
pip install openpyxl
操作步骤:
-
编写转换脚本
用记事本或VS Code创建一个.py
文件(如excel_to_json.py
),输入以下代码:import json from openpyxl import load_workbook def excel_to_json(excel_path, json_path, sheet_name=None): """ 将Excel文件转换为JSON文件 :param excel_path: Excel文件路径(如'data.xlsx') :param json_path: JSON文件保存路径(如'data.json') :param sheet_name: 指定工作表名(默认第一个工作表) """ # 加载Excel文件 wb = load_workbook(excel_path) sheet = wb[sheet_name] if sheet_name else wb.active # 获取列名(第一行作为key) headers = [cell.value for cell in sheet[1]] data = [] # 遍历数据行(从第二行开始) for row in sheet.iter_rows(min_row=2, values_only=True): # 将每行数据与列名组合成字典 row_dict = dict(zip(headers, row)) data.append(row_dict) # 将数据转换为JSON格式(ensure_ascii=False确保中文正常显示) with open(json_path, 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4) # indent=4美化格式 print(f"转换成功!JSON文件已保存至:{json_path}") # 示例调用 if __name__ == '__main__': excel_to_json('data.xlsx', 'output.json')
-
运行脚本
- 将Excel文件(如
data.xlsx
)和Python脚本放在同一文件夹下; - 双击运行脚本,或命令行进入文件夹后输入
python excel_to_json.py
; - 等待提示“转换成功”,即可在同文件夹下生成
output.json
文件。
- 将Excel文件(如
输出效果:
生成的JSON文件会自动处理格式,支持中文、数字等类型,
[ { "姓名": "张三", "年龄": 25, "城市": "北京" }, { "姓名": "李四", "年龄": 30, "城市": "上海" } ]
优点:自动化程度高,支持大数据量和批量处理,可灵活自定义格式;
缺点:需要基础Python知识,适合有一定技术基础的用户。
3种方法怎么选?
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
手动复制粘贴 | 数据量小(<50行),临时应急 | 无需工具,简单直接 | 效率低,易出错 |
Excel内置功能 | 新版Excel用户,无需编程 | 无需第三方工具 | 步骤繁琐,兼容性有限 |
Python自动化 | 数据量大(>50行),频繁转换 | 高效,灵活,可自定义 | 需基础Python知识 |
如果你的数据量小且偶尔转换,选方法一;如果常用新版Excel且不想装工具,选方法二;如果是开发或批量处理,强烈推荐方法三——一次编写,终身受用!
赶紧试试吧,让Excel和JSON之间的转换变得轻松高效~
还没有评论,来说两句吧...