如何将二维数组结构JSON导入Excel 借助PowerQuery拆分行列
二维数组格式JSON导入Excel为多列表格的Power Query实现方案
可视化操作步骤
- 导入JSON源
点击Excel顶部「数据」选项卡,依次选择「获取数据」>「自文件」>「自JSON」,选中目标JSON文件后会自动打开Power Query编辑器,此时编辑器会识别到最外层是包含2个元素的列表,每个元素就对应JSON里的一个内层数组。 - 一键生成二维表结构
如果编辑器顶部没显示公式栏,先点「视图」选项卡,勾选「公式栏」调出。把公式栏里默认生成的公式直接替换为Table.FromRows(Source, {"Column A", "Column B", "Column C", "Column D"}),按回车就能直接得到2行4列的目标结构,不需要额外做拆分操作。 - 导出数据到工作表
点击编辑器左上角「关闭并上载」,处理好的表格就会自动导入到Excel工作表里,和你预期的效果完全一致。
完整M代码参考
如果要手动新建空白查询实现,直接打开Power Query的高级编辑器,粘贴以下代码,替换成你自己的JSON文件路径就能用:
let // 替换为你本地JSON文件的实际存储路径 JsonSource = Json.Document(File.Contents("C:\替换成你的文件实际路径\data.json")), // 直接将二维列表映射为带指定列名的表格 OutputTable = Table.FromRows(JsonSource, {"Column A", "Column B", "Column C", "Column D"}) in OutputTable
踩坑说明
- 之前导入得到8个值的单列,是因为默认的展开操作会把两层嵌套列表全部纵向展开,没有做横向的列拆分。
Table.FromRows会自动识别内层数组的结构,把每个内层数组按顺序映射为一行,数组内的元素自动对应到不同列,不需要逐次手动拆分。 - 如果你的JSON里各个内层数组长度不一致,长度不足的行对应列会自动填充
null,不会运行报错。 - 如果不需要提前固定列名,直接写
Table.FromRows(Source)即可,生成的列会默认命名为Column1、Column2这类,后续双击列名就能自定义修改。
内容的提问来源于stack exchange,提问作者TobyLL
相关产品推荐
相关产品推荐

