JSON 数据放进 Excel 前,先决定“表格的一行代表什么”,再谈转换。订单对象里若还包含客户对象和商品数组,应把订单与商品明细拆成有关联的表,不能指望一次 JSON 转 CSV 自动做出正确的数据模型。
先检查 Excel 自带的 JSON 导入路径
需要重复刷新或展开嵌套结构时,优先检查当前 Excel 是否提供 Power Query JSON 连接器。Microsoft 当前文档给出的桌面路径是 数据 > 获取数据 > 从文件 > 从 JSON;选择本地文件后,在 Power Query 编辑器中查看自动生成的表格检测和展开步骤,再决定是否加载。
这个路径适合保留可重复的转换过程,但“自动展开”不等于“业务关系正确”。订单总额如果被重复到每一条商品明细,后续汇总可能重复计算;地址对象被展开成多列,也不代表这些个人信息就应该进入交付文件。每一个展开、删除和类型变更步骤都要能说明原因。
Microsoft 的导入数据说明涵盖 Excel for Microsoft 365、Excel 2024、Excel 2021、Excel 2019 和 Excel 2016。Mac 或网页版的入口和功能范围可能不同;找不到上述路径时,应查看对应产品的 Microsoft 帮助,不要把本文的桌面菜单名称当成所有版本都完全一致。
用订单样本确定两张表的边界
例如,先拿一份不含真实姓名、地址和令牌的模拟电商订单。假设每个订单有 order_no、ordered_at、customer_id、total,同时包含一个 items 数组;数组里的每项有 sku、quantity 和 unit_price。
更容易核对的结构通常是:
orders.csv每行一个订单,保留订单号、时间、客户编号和总额。order_items.csv每行一个商品明细,增加同一个order_no作为关联键。- 两张表分别写清空值、缺失字段和
null的处理规则。 - 订单号、SKU、邮编一类可能有前导零的字段,在 Excel 中按文本导入。
- 地址、备注或其他敏感字段只有在确有用途和权限时才进入输出。
不要把整个 items 数组塞进一个单元格,也不要预先假设每个订单最多有三个商品,然后做出 item_1、item_2、item_3。前者难以筛选和计算,后者会在商品数量变化时丢数据。
转换前统一对象字段,不让第一条记录决定全部列
CSV ⇄ JSON 互转工具的 JSON 转 CSV 功能要求顶层是非空数组。数组内容是对象时,当前组件只根据第一个对象的键生成表头;后续对象少了某个键会留下空单元格,多出来的键则不会自动增加新列。
因此,转换前要先写一份字段清单,并让同一张表里的每个对象都有一致的键。可以用JSON 格式化工具检查语法、缩进和数组层级,再抽查第一条、中间一条与最后一条记录。语法有效只能证明 JSON 可解析,不能证明字段权限、币种或订单关系正确。
嵌套对象也要先处理。当前转换器不会递归展开对象;对象值可能变成 [object Object],数组也可能变成逗号连接的文本。这些结果不能当作结构已经保留。应选择确实需要的标量字段、拆成另一张表,或回到 Power Query 中明确展开记录和列表。
一张表一次转换,再通过 Excel 预览载入
把整理好的 orders 对象数组粘到 JSON 区,选择接收流程需要的单字符分隔符,然后执行 JSON → CSV。工具会使用第一条对象的键创建表头,对包含分隔符、逗号、双引号或换行的值加引号,并把值中的双引号转义。
它输出的是 CSV 文本,不是 .xlsx 工作簿,也不会自动下载文件、建立多张工作表或设置 Excel 单元格格式。应将结果复制到经过批准的 UTF-8 文本流程,另存为新的 .csv 文件,并保留原始 JSON。随后用同样方法单独生成 order_items.csv。
在受支持的桌面 Excel 中,通过 数据 > 获取和转换数据 > 从文本/CSV 打开新文件。预览时先核对编码和分隔符,再检查订单号、SKU、日期和金额的推断类型;需要控制文本编号或日期时,选择“转换数据”,不要直接载入后才猜测哪些值被改过。
直接双击 CSV 会按照 Excel 当前的默认数据格式解释各列。它可能让前导零消失、把长编号显示成科学计数法,或按本机区域规则解释日期。CSV 文件本身也不能保存公式、样式、多工作表或表间关系,所以“能在 Excel 打开”不等于已经得到完整工作簿。
用一笔完整订单做三方核对
验收要同时对照原 JSON、生成的 CSV 和 Excel 载入结果。选一笔包含两个商品、一个空白可选字段、非英文备注和前导零 SKU 的模拟订单,沿着两张表追踪它。
至少确认下列项目:
orders行数等于预期订单数,order_items行数等于所有商品明细数。- 每条商品明细的
order_no都能在订单表中找到。 - 表头名称和顺序与字段清单一致,第一条记录没有漏掉后续需要的键。
- 逗号、双引号、换行和中文仍在原本单元格内。
- 前导零编号按文本保留,日期与金额没有按错误的区域规则重写。
- 空值、缺失值和
null的表现符合接收系统约定。
还可以把不敏感的小样本交给 CSV / Excel 在线预览做独立的行列观察。该工具只显示最多 500 条匹配数据,不能证明大文件完整,也不会验证订单金额、权限或两张表的关联。任何计数或键值不一致都应回到未修改的 JSON 重新生成,不要在大 CSV 中手工挪单元格补洞。
常见问题
Excel 可以不转 CSV 直接导入 JSON 吗?
可以,前提是当前版本和宿主提供 Power Query JSON 连接器。导入后仍要审查自动检测、记录展开、列表展开和类型变更步骤。
为什么嵌套对象变成了 [object Object]?
因为 ToolboxHub 转换器不负责递归展开对象。请选择需要的标量字段、拆出相关表,或在 Power Query 中明确展开。
后面的对象多了字段,为什么 CSV 没有新列?
当前组件以第一个对象的键作为表头。转换前应按字段清单统一每个对象,不能让第一条记录偶然决定输出结构。
JSON 转 CSV 后会直接得到 Excel 工作簿吗?
不会。输出只是 CSV 文本,不包含工作表、公式、样式或字段类型;还需要通过 Excel 的导入预览控制分隔符和列类型。
预览里的订单都正常,就能导入全部真实数据吗?
不能据此判断。先使用授权的小样本测试权限、字段映射、行数和关联键,再按组织的数据处理规则决定是否处理全量数据。