Excel 转 JSON
Excel 转 JSON,是指把 xlsx/xls 表格转换成 JSON 数据的操作,常用于把表格喂给程序、导入接口、生成 mock 测试数据。本工具免费使用、不加水印,默认把首行作为字段名,将整表转成对象数组 [{列1:值,列2:值}, …],也可输出二维数组;多个工作表会一次导出为按表名分组的 JSON。工具会智能处理 Excel 特有的坑:日期默认转成可读的 ISO 字符串、手机号/身份证等长数字串保留为文本不丢前导 0、公式取计算结果值。全程在你的浏览器本地用 SheetJS 完成,表格文件不上传、不保存到服务器,更适合含敏感数据的表格。下面介绍具体操作和常见问题。
🔒 Excel 在你的浏览器内转换成 JSON,未上传任何服务器。转数据不转样式(公式取计算结果值)。
如何使用Excel 转 JSON
拖入或选择一个 Excel 文件(支持 xlsx/xls,单文件 ≤ 50MB,在浏览器本地处理、不上传)。
选输出结构:「对象数组」把首行作字段名转成 [{列:值}];「二维数组」原样输出行列。
多工作表时选「全部(按表名分组)」或指定某一张表;需要时展开高级选项调类型推断、日期格式、空值处理与缩进。
点「转换为 JSON」,在结果区预览生成的 JSON 与汇总、警告。
点「复制 JSON」或「下载 .json」;多表勾选「分文件打包」时下载得到 zip。
常见问题
- 怎么把 Excel 表格转成 JSON 对象数组?
- 上传 Excel 后保持默认的「对象数组」结构,工具会把首行当作字段名(key),其余每一行转成一个对象,整表输出为 [{"姓名":"张三","年龄":18}, …],这正是把表格喂给程序、导入接口或造 mock 数据最常用的格式。若表格没有规整表头,可切到「二维数组」原样输出行列。
- Excel 转 JSON 前导 0 和手机号丢失怎么办?
- 本工具默认开启「长数字串保文本」:手机号、身份证、银行卡、以 0 开头的编号等原本存为文本的长数字串会保留为字符串,不转成 number,因此不会变成科学计数法、也不会丢掉前导 0。只有能无损还原的安全数字才会转成数值,处理这类字段更放心。
- Excel 里的日期转 JSON 变成一串数字怎么办?
- 那串数字是 Excel 的日期序列号。本工具默认把日期转成可读的 ISO 字符串(如 2026-08-05,含时间则输出完整 ISO),比裸转出来的序列号好用得多。你也可以在高级选项里切换为「Excel 序列号」或「可读日期文本」(如 2026-08-05 09:30:15,用空格分隔日期与时间)。
- 一个 Excel 有多个 sheet 转 JSON 怎么处理?
- 默认会把多个工作表输出为一个按表名分组的对象 {"Sheet1":[…],"Sheet2":[…]};你也可以在工作表下拉里只选其中一张表,输出单个数组;还能勾选「多表每张各存一个 .json 打包 zip」,一次导出全部分表文件。
- Excel 转 JSON 中文乱码怎么办?
- Excel 转 JSON 默认输出 UTF-8 编码、直接保留可读中文,用编辑器或浏览器以 UTF-8 打开都不会乱码。若你在别处看到 \u4e2d\u6587 这类转义,那是 JSON 对非 ASCII 字符的合法写法,程序 JSON.parse 后仍是正常中文;本工具默认不做转义、直接输出中文,复制或下载都放心。
- Excel 转 JSON 会上传到服务器吗,安全吗?
- 不会上传,很安全。Excel 转 JSON 全程在你的浏览器本地用 SheetJS 完成,表格文件不会离开你的设备、不保存到服务器,关闭页面即清除,处理含工资、客户、名单等敏感数据的表格也放心。
- 手机上能把 Excel 转成 JSON 吗?
- 可以。本工具是纯网页、在浏览器本地运行,手机和电脑浏览器都能用,无需安装 App,转完可直接复制或下载 .json。表格特别大时手机内存有限,建议改用电脑处理超大表格。
- Excel 转 JSON 能保留公式和单元格格式吗?
- 转数据不转样式:单元格的值会完整转成 JSON,含公式的单元格取其计算结果值(不重算),而字体颜色、数字/日期显示格式、合并单元格、图表等样式不会进入 JSON。需要的是结构化数据,这正合适;需要保留格式请另存原表。
Excel 转 JSON 的两种输出结构怎么选:对象数组还是二维数组
转 JSON 前先想清楚「要不要把首行当字段名」。大多数开发场景要把表格喂给程序或接口,选「对象数组」最直观;需要保留原始行列位置、或表格没有规整表头时,选「二维数组」原样输出。下表按常见需求给出对照。
| 对比项 | 对象数组(objects) | 二维数组(arrays) |
|---|---|---|
| 输出形状 | [{"列":值}, …] | [["列","值"], …] |
| 首行处理 | 作为字段名(key) | 原样作为第一行(可选去掉) |
| 适合场景 | 喂接口、造 mock 数据、导入程序 | 保留行列位置、无规整表头 |
| 多表分组 | {表名:[{…}]} | {表名:[[…]]} |
| 键是否要求唯一 | 是(重名自动去重) | 否 |
举例:把「用户表」转对象数组会得到 [{"姓名":"张三","年龄":18}, …],可直接 JSON.parse 后喂给前端渲染或接口批量导入;若两列都叫「金额」,对象键不能重复,工具会稳定去重为「金额」「金额_2」并给出提示,避免后写覆盖前写而丢数据。