完全免费 · 本地运行 · 隐私安全

excel转json | Excel 格式转换 - 免费在线完成excel转换json 纯前端解析,无需上传

上传 Excel 后点击「转换」,即可导出 JSON 或打包 ZIP 下载;多工作表自动拆分,空表自动跳过。
输入格式.xlsx/.xls
输出格式.json/.zip
处理方式本地运行
多工作表自动拆分

excel转json工具介绍

excel转json 是一款完全免费、基于浏览器本地运行的表格格式转换工具,具有按表头自动生成键名、识别数字与布尔类型、日期转为 ISO 8601 字符串、多工作表打包 ZIP 等功能,能解决手动拼 JSON 易漏字段、类型全变字符串、键名含空格导致取值失败等问题,适合前端 mock 数据、接口联调、NoSQL 导入、配置表生成等场景。例如,源表表头为 id / name / price / stock,第一行数据为 1 / 键盘 / 199 / 12,本工具会输出 [{"id":1,"name":"键盘","price":199,"stock":12}],其中 199 是数字而不是字符串 "199",前端可直接做数值比较,无需再手动 parseFloat。

excel转json是什么

excel转json 就是把 Excel 工作簿中的表格数据以结构化 JSON 形式导出的过程。本工具使用 SheetJS(xlsx)在浏览器内完成解析,逐个读取工作簿中的工作表,将表头行作为对象键(key),其余每一行作为一条记录,生成标准的 JSON 对象数组。转换时会自动处理数字、布尔、日期等类型,对空单元格做合理省略,并对键名去重与去空白,保证输出结果可以直接被 JavaScript、Python、Java 等语言解析。导出的 JSON 文件使用 UTF-8 编码,中文不会出现乱码。JSON 本身的语法定义在 RFC 8259 与 ECMA-404 中,本工具严格按该规范输出,任何标准 JSON 解析器都能正确读取。

什么是 Excel 和 JSON

Excel 是微软 Office 套件中的电子表格软件,其原生文件格式 .xlsx 基于 Office Open XML 标准,本质上是一个 ZIP 压缩包,内部包含 XML 描述的工作表、样式、共享字符串、公式等资源;旧版本 .xls 则使用二进制 BIFF 格式。JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的结构化数据交换格式,用键值对和数组描述数据,语法简洁、可读性强,是 Web API、前后端通信、配置文件、NoSQL 数据库中最通用的数据格式。相比表格,JSON 更适合嵌套结构与程序读取,因此把 Excel 转成 JSON 是数据接入开发流程中的常见一步。

Excel 与 JSON 的核心差异

维度Excel (.xlsx)JSON (.json)
数据结构二维表格,行与列对象数组,支持任意嵌套
类型系统文本、数值、日期、公式、错误值字符串、数字、布尔、null、对象、数组
样式字体、颜色、边框、合并单元格无
体积较大(含 XML 与样式元数据)较小(纯文本结构)
版本控制二进制 diff 困难文本可 diff,逐行对比
典型消费方Excel、WPS、NumbersJavaScript、Python、MongoDB、API

类型映射规则

本工具按如下规则把 Excel 单元格类型映射为 JSON 类型:数值型单元格输出为 JSON Number,不加引号;布尔型输出为 true / false;日期型统一转换为 ISO 8601 字符串,例如 2024-01-15;空单元格省略该键,不输出 null;其余一律作为字符串处理,中文与特殊字符保留原样。例如源表中 年龄 列为数值 28,输出为 "年龄":28;状态 列为 TRUE,输出为 "状态":true;入职日期 列为 2024/1/15,输出为 "入职日期":"2024-01-15"。前端拿到后可直接用 typeof 判断类型,不必再做类型转换。

excel转json的应用场景?

常见场景包括:把 Excel 数据导入 MongoDB、Elasticsearch 等 NoSQL 数据库;为前端页面或小程序准备静态 mock 数据;将运营整理的商品清单、地区字典、配置表转换为程序可读的 JSON 文件;为接口联调、单元测试构造测试数据集;把 Excel 报表转成 JSON 后交给 Python pandas、Node.js 脚本做进一步处理;跨系统迁移数据时做中间格式;以及把多语言文案表、菜单权限表等业务表格转换为前端可用的资源文件。对于需要嵌套结构、类型明确、便于程序解析的场景,JSON 比 CSV 更有优势。

常见陷阱与规避方法

第一类是前导零丢失:工号 001、区号 010 在 Excel 中被当作数字存储,导出后会变成 1 和 10。规避方法是在源表中把该列设为文本格式,或在数字前加单引号。第二类是长数字精度丢失:身份证号、银行卡号超过 15 位后,JavaScript 与 Excel 都会按浮点数处理,末位可能变成 0,建议在源表中作为文本存储。第三类是日期时区偏移:Excel 的日期本质是序列号,转换时按本地时区解释,跨时区使用时建议在源表中以 YYYY-MM-DD 文本格式记录。第四类是合并单元格只保留左上角值,其余单元格为空,导出后可能缺字段,需先在 Excel 中取消合并并补齐数据。

excel转json的原理?

转换时首先用浏览器 FileReader 读取文件的二进制内容,交给 SheetJS 解析为一个工作簿对象,其中包含所有工作表及其单元格数据。随后遍历每个工作表,按第一行识别表头,通过 sheet_to_json 将数据行映射为对象数组,函数内部会自动识别数字、布尔与日期类型,并跳过完全空白的行。完全没有数据的空表会被自动过滤,只保留有效工作表。若工作簿只有一个非空表,则直接下载为 .json;若有多个,则用 JSZip 把每个表单独导出为 JSON 后打包成 ZIP,避免文件互相覆盖。整个流程完全在浏览器本地完成,关闭页面后数据自动清除,不会留下任何痕迹。

在代码中如何使用生成的 JSON

导出的 .json 文件可直接被各类语言读取。JavaScript / Node.js 中可用 JSON.parse(fs.readFileSync('out.json','utf8')) 或直接 import;Python 中可用 json.load(open('out.json', encoding='utf-8')) 或 pandas 的 pd.read_json('out.json');导入 MongoDB 可用 mongoimport --db test --collection users --file out.json --jsonArray;导入 Elasticsearch 可用 Bulk API 逐行提交。若需把 JSON 再转回表格,Python 的 pd.json_normalize(data) 或 JavaScript 的 Object.keys 配合 map 即可轻松实现。

大数据量与嵌套结构建议

本工具默认输出扁平的对象数组,每行一条记录,适合绝大多数场景。但若单表超过 10 万行,建议先在 Excel 中拆分,或改用 pandas 分块处理,避免浏览器内存压力过大。若源表本身含层级信息(例如 部门-小组-成员),扁平输出会丢失关系,可在导出后用 pandas 的 groupby 或 JavaScript 的 reduce 重建嵌套结构。反过来,若需要把嵌套 JSON 展平为表格,pandas 的 json_normalize 是最便捷的选择。选择扁平还是嵌套,取决于下游消费方:数据库、CSV 工具、Excel 更喜欢扁平;前端组件、API 响应、配置文件更喜欢嵌套。

excel转json常见问题

支持 .xlsx(Office 2007 及以后)和 .xls(旧版二进制格式)两种主流 Excel 文件。带密码保护或工作表加密的文件无法解析,会提示转换失败。上传时建议单个文件不超过 50MB,超大文件可能因浏览器内存限制而转换缓慢或失败。

会全部转换为独立的 JSON 文件。如果工作簿只有一个非空工作表,直接下载 .json;如果有多个,则打包为 ZIP 下载,ZIP 内每个工作表对应一个以 Sheet 名命名的 JSON 文件。同名工作表会自动加数字后缀去重,避免互相覆盖。

默认输出为对象数组:第一行作为表头识别为字段名(key),其余每一行生成一个对象,例如 [{"姓名":"张三","年龄":28}]。数字、布尔值会自动识别为对应类型而非字符串;完全空白的行会被跳过。若表格没有表头,则会以列序号作为键名。

会。超过 15 位的数字在 Excel 和 JavaScript 中都按浮点数处理,末位可能被改写为 0。建议在源 Excel 中把该列设为文本格式,或在数字前加单引号,让单元格以字符串形式存储,导出后即可完整保留原始数字。

日期型单元格会统一转换为 ISO 8601 字符串,例如 2024-01-15 或 2024-01-15T09:30:00.000Z,具体取决于源单元格是否带时间。若源单元格是文本形式的日期(如 2024年1月15日),则按文本原样输出,不做解析。跨时区使用时建议在源表中以 YYYY-MM-DD 文本格式记录。

不会。完全没有单元格数据的空表会被自动跳过,只有格式但没有内容的表也会被过滤。所以哪怕原始 Excel 里有几个占位的空白 Sheet,导出的 ZIP 里也只会包含真正有数据的表。如果所有表都为空,会提示"该 Excel 没有可导出的有效数据"。

不会。导出的 JSON 文件使用 UTF-8 编码,中文字段名与字段值都能正常显示。用 VS Code、Notepad++、Python 的 json 模块、Node.js 的 JSON.parse 读取均无问题。若个别老旧系统出现乱码,可将文件另存为 UTF-8 with BOM 再使用。

不会。所有解析和转换都在你的浏览器里完成,文件不会上传到任何服务器,关闭页面后数据自动清除。你可以断网使用本工具,进一步验证其本地运行特性,隐私安全有保障,尤其适合处理财务、客户名单、内部配置表等敏感数据。