如何将XLSX转换为含主键与数组结构的JSON格式?
实现XLSX转特定聚合格式JSON的方法(无需自定义脚本)
方法一:用Excel内置Power Query工具
这是最稳妥的原生方案,无需依赖外部工具:
- 导入数据到Power Query:选中表格数据区域,点击「数据」选项卡 → 「从表格/区域」(Excel 2016及以上版本支持),确认数据包含表头。
- 按主键分组:在Power Query编辑器中,选中
File列(主键列),点击「转换」选项卡 → 「分组依据」。设置分组规则为:- 新列名:比如
GroupedData - 操作:选择「所有行」
- 新列名:比如
- 生成去重数组列:
- 添加自定义列,命名为
Year,公式输入:List.Distinct([GroupedData].[Year]),这个公式会提取分组内所有Year值并去重转为数组。 - 同理添加
State列,公式:List.Distinct([GroupedData].[State])
- 添加自定义列,命名为
- 清理并导出:删除
GroupedData列,点击「主页」→ 「关闭并上载」,将处理好的数据加载回Excel。 - 转换为JSON:再次点击「数据」→ 「获取数据」→ 「自文件」→ 「自工作簿」,选择当前Excel文件,选中刚加载的处理表,进入Power Query后点击「转换」→ 「到JSON」,即可生成目标格式的JSON。
方法二:使用在线Excel转JSON工具(支持分组聚合)
找支持按指定列分组、将其他列值去重转为数组的在线转换工具,操作逻辑如下:
- 上传你的XLSX文件,选择要转换的工作表。
- 指定
File作为分组主键列。 - 对
Year和State列,设置处理规则为「去重后生成数组」。 - 生成并下载JSON结果即可。
注意事项
- 若你的表格中有多个不同的
File值,最终会生成包含多个JSON对象的数组(每个File对应一个对象),符合常规聚合逻辑。 - 确认去重规则和原脚本一致(比如是否区分大小写、特殊字符处理等),如果Power Query的
List.Distinct不满足,可调整公式(比如加Comparer.OrdinalIgnoreCase实现大小写不敏感去重)。
内容的提问来源于stack exchange,提问作者xanabobana
相关产品推荐
相关产品推荐

