Excel转JSON
把电子表格转成代码能直接使用的JSON:对象数组、数组的数组,或者每列一个数组。
把文件拖到这里
.xlsx, .xlsm, .xls, .ods · 最大300 MB
更多设置收起设置
如何转换为JSON
- 1
拖入Excel文件
XLSX、XLSM、XLS和ODS直接在浏览器中读取,工作簿一打开就会列出所有工作表。
- 2
选择工作表和JSON结构
对象数组适合作为API请求体,数组的数组适合已经知道列顺序的脚本,按列输出适合图表库。
- 3
转换并下载
结果是合法的JSON,缩进按你的选择,无需任何清理就能直接交给JSON.parse。
三种结构,对应三种用途
对象数组是默认结构:每行一个对象,键取自表头,REST接口和数据库填充脚本要的就是它。数组的数组体积更小,在使用方已经知道列顺序时遍历更快;表头重复或缺失也不影响它,因为根本没有会冲突的键。按列结构把表格倒过来,每列生成一个数组,这正是多数图表库需要的输入,而从按行的数据手工拼出来很麻烦。
重复和缺失的列名
真实的电子表格里会有两个都叫id的列,表头行藏在标题横幅下面第三行,末尾还有别人加上的无名列。每一种情况都会让简单的转换器出错。这里表头行是一项设置,而不是默认假设。重复的列名会加上_2、_3后缀,并在结果中提示,你能及时知道发生了重命名,而不是到了生产环境才发现;注意第一次出现的列保留原名,底层库默认并不是这样处理的。空白表头变成column_2、column_5等,按位置编号,重新导出时名字保持不变。
数据类型原样保留
数字仍是数字,布尔值仍是布尔值,日期变成ISO 8601字符串:时间是午夜时只写日期,否则写完整时间戳,因为45730这样的Excel原始序列号对后续任何程序都没有意义。只是看起来像数字的文本,比如带前导零的产品编码,仍然是字符串。空单元格是唯一没有明确正确答案的情况,所以由你选择:null、空字符串,或者在对象里完全省略这个键。
文件不上传
工作簿的解析和JSON的生成都在这个浏览器标签页里完成。不会有副本发送到服务器,也不保存任何内容,关闭页面后数据就消失了。表格是客户数据导出时,这一点很重要。
常见问题
对象数组和数组的数组有什么区别?
对象数组每行给出{"id": 1, "name": "A"}这样的对象,用表头作键,易读,含义一目了然。数组的数组每行给出[1, "A"],表头作为第一项包含在内,体积更小,也不受重复列名影响。
表头不在第一行,还能输出对象吗?
能。把表头行号设为真正列名所在的那一行,最大到第50行。它上面的内容全部丢弃,所以标题横幅和空白间隔行不会造成问题。
日期和前导零会怎么处理?
日期变成2026-03-14这样的ISO字符串,而不是Excel序列号。以文本形式存储的值,比如产品编码00123,仍然是字符串,前面的零保留。
公式会导出吗?
导出的是公式的计算结果。JSON无法表达公式,所以输出里是单元格最后一次计算得到的数值。
能把所有工作表导出到一个文件吗?
能。选择全部工作表并保持外层包装开启,会得到一个以工作表名为键的对象。关闭外层包装,会得到一个ZIP,每个工作表一个单独的JSON文件。
两列同名怎么办?
第一列保留原名,后面的依次加上_2、_3,并有提示告诉你哪个键改了名。改用数组的数组结构,就完全不存在这个问题。
文件会上传到服务器吗?
不会。读取工作簿和生成JSON都在你的浏览器里本地完成,不上传,也不在任何地方临时存储。