Angular2中如何将JSON数据导出至Excel?
如何将复杂JSON数据导出到Excel?
嘿,我来帮你搞定把这个JSON导出到Excel的事儿!你的JSON包含了多组收支明细和汇总数据,结构有点复杂,下面给你两种实用方法,不管你会不会代码都能轻松搞定:
方法一:用Python(灵活处理复杂结构)
如果你能写点简单代码,这个方法最适合,能自动把不同类别的数据分到不同Excel工作表,还能单独整理汇总值。
步骤:
- 先修复JSON语法:你的原始JSON有几处语法错误(比如
CreditorExp数组里多了一个闭合括号、StaffCredit的汇总值混进了数组里),先把这些问题修正,确保JSON格式合法。可以用在线JSON校验工具检查(随便搜一个就能用)。 - 安装依赖库:打开命令行,运行
pip install pandas openpyxl(openpyxl是用来写入Excel的必要库)。 - 运行以下代码:
import pandas as pd import json # 加载修复后的JSON数据(假设你把它存成了data.json文件) with open('data.json', 'r', encoding='utf-8') as f: json_data = json.load(f) # 创建Excel文件,准备写入多个工作表 with pd.ExcelWriter('收支报表.xlsx', engine='openpyxl') as writer: # 遍历所有字段,把列表类型的明细数据写入单独sheet for category, records in json_data.items(): if isinstance(records, list) and records: # 只处理非空列表 df = pd.DataFrame(records) # 把字符串类型的金额转成数值(可选,方便后续计算) if 'amount' in df.columns: df['amount'] = pd.to_numeric(df['amount'], errors='coerce') df.to_excel(writer, sheet_name=category, index=False) # 提取所有汇总值,写入Summary工作表 summary = {key: value for key, value in json_data.items() if not isinstance(value, list)} summary_df = pd.DataFrame.from_dict(summary, orient='index', columns=['数值']) summary_df.to_excel(writer, sheet_name='汇总表', index=True)
运行完代码,你会得到一个Excel文件:每个明细类别(比如CreditorExp、MiscIncm)对应一个工作表,所有汇总值单独放在「汇总表」里。
方法二:用Excel自带的Power Query(无需代码)
如果你不想碰代码,Excel的Power Query工具就能搞定,全程可视化操作:
步骤:
- 保存JSON为文件:把修复后的JSON复制到文本编辑器,保存成
data.json文件。 - 导入JSON到Power Query:
- 打开Excel,点击顶部的数据选项卡 → 选择获取数据 → 从文件 → 从JSON。
- 选择你保存的
data.json文件,点击导入,进入Power Query编辑器。
- 拆分明细数据:
- 在编辑器里,你会看到所有JSON字段。对于每个列表类型的字段(比如
CreditorExp),点击字段名旁边的双向箭头图标(展开按钮),选择要显示的列,点击确定,就能把列表展开成表格。 - 如果你想把不同类别分开存到不同sheet:右键点击查询,选择复制,然后分别修改每个复制的查询,只保留对应类别的数据,最后依次加载到Excel工作表。
- 在编辑器里,你会看到所有JSON字段。对于每个列表类型的字段(比如
- 提取汇总值:
- 在Power Query里,筛选出所有非列表类型的字段,用「转换」选项卡的「转置」功能把它们转成表格,然后加载到单独的工作表。
- 导入到Excel:点击编辑器顶部的关闭并上载,所有数据就会导入到Excel里了。
小提示:
- 如果某些
amount字段是字符串格式,在Excel里可以选中列,右键选择转换为数值,方便后续计算。 - 要是JSON里有
null值,Excel会显示为空单元格,正常处理就行。
内容的提问来源于stack exchange,提问作者Athira
相关产品推荐
相关产品推荐

