Excel 转 JSON:转换差异、边界与常见坑

在线 Excel 转 JSON:首行作为字段名映射为对象数组,数字、空白与日期分别按明确规则定类型,避免日期变数字、空单元格变 null 这类隐性坑;导入前先确认哪一行是表头。

工作表转对象数组,第一行作键、每行作对象。真正的坑在类型推断:001 会变成 1、超过 15 位的编号会被浮点化、空单元格与缺失字段在 JSON 里长得一样。转换前把该列格式固定下来,结果才稳定。

两种格式的差异对照

维度Excel(表结构)JSON(对象数组)
组织结构二维网格(行 × 列)对象数组,天然支持嵌套
键名第一行作为列名列名映射为对象键,含空格的列名需要清洗
类型表达单元格类型 + 显示格式按内容推断 number/boolean/string,无格式概念
空值空单元格null 或 ""(语义不同,需明确约定)
嵌套能力靠多表或重复列表达层级直接嵌套对象与数组
数组表达需要多行或分隔符约定原生数组,语义明确
可读性适合人工查看与录入适合程序消费与接口传输
体积含样式与结构,较大纯数据,精简

边界条件

  • 同一列混有文本与数字("12" 与 12)时推断结果不一致,会导致下游类型校验失败——先统一整列格式。
  • 列名含中文、空格或特殊符号时不是合法键名,需要转成拼音/下划线或加引号包裹。
  • 多行表头(合并单元格)会让第一行并不是真正的列名,转换前必须先合并成单行表头。
  • 空行(整行空白)通常会被过滤,若它承载分隔语义则在 JSON 中彻底丢失。

常见坑

  • 前导零编号被当成数字,JSON 里成了 1 而不是 "001",回写数据库直接错位。
  • 多工作表只导出了活动表,其余数据静默丢失。
  • 列名重复(两列都叫"备注")时后者覆盖前者,JSON 对象无法表达重复键。
  • 数字超过 2^53 时在 JS 侧解析失真,大整数编号应当以字符串传输。

相关工具

常见问题

怎么把 JSON 再转回 Excel?

使用同工具的交换方向功能,或本站对应的「JSON 转 Excel」页面,两者都本地运行、数据不上传,可完成往返转换与校验。

Excel 和 JSON 哪个更适合人类阅读?

这取决于场景:JSON 通常更偏向程序解析与接口传输式的可读形态,而 Excel 更利于程序解析与接口传输式的程序消费;需要人工编辑时优先选可读性更高的那一侧。

表头和数据类型是怎么映射的?

默认把第一行当表头、每行转成一个 JSON 对象:列名作键、单元格值作值。类型通常按内容推断(纯数字转 number、true/false 转 boolean、其余为 string),因此 001 这类带前导零的编号会变成数字 1——转换前请把该列设为文本。

空单元格和不存在的列会输出什么?

空单元格一般输出为空字符串或 null(取决于选项),缺少整列时该键直接不出现。下游做校验时不要把"键缺失"和"值为 null"混为一谈,它们是两种不同的语义。