如何使用Pandas将指定格式的Object写入Excel表格?
将嵌套JSON转换为指定格式Excel的实现方法
下面提供几种不同场景下的实现方案,你可以根据自己的技术栈选择:
方案一:Python + Pandas(适合熟悉Python的用户)
- 先安装依赖库
pip install pandas openpyxl
- 编写代码处理数据并生成Excel
import pandas as pd # 替换成你的实际数据 data = { "methodName_1": { "version_1": "10", "version_2": "15" }, "methodName_2": { "version_1": "20", "version_2": "25" } } # 提取所有版本号作为表格列(自动去重并排序) all_versions = sorted({v for method in data.values() for v in method.keys()}) # 整理成表格行数据 table_rows = [] for method_name, version_counts in data.items(): row_data = {"方法名": f"{method_name}:"} # 为每个版本填充对应的count,没有则留空 for version in all_versions: row_data[version] = version_counts.get(version, "") table_rows.append(row_data) # 生成DataFrame并写入Excel df = pd.DataFrame(table_rows) df.to_excel("method_statistics.xlsx", index=False)
执行后会生成一个Excel文件,格式完全符合你的要求。
方案二:Node.js + XLSX库(适合前端/Node.js开发者)
- 先安装依赖
npm install xlsx
- 编写处理代码
const XLSX = require('xlsx'); // 替换成你的实际数据 const data = { "methodName_1": { "version_1": "10", "version_2": "15" }, "methodName_2": { "version_1": "20", "version_2": "25" } }; // 提取所有版本号并排序 const all_versions = [...new Set(Object.values(data).flatMap(method => Object.keys(method)))].sort(); // 构建表格结构:第一行是表头,后续是方法数据 const sheetData = [['', ...all_versions]]; // 表头第一列留空,后面是版本号 // 遍历每个方法,生成对应行 for (const [methodName, counts] of Object.entries(data)) { const row = [`${methodName}:`]; all_versions.forEach(v => row.push(counts[v] || '')); sheetData.push(row); } // 生成Excel文件 const workbook = XLSX.utils.book_new(); const worksheet = XLSX.utils.aoa_to_sheet(sheetData); XLSX.utils.book_append_sheet(workbook, worksheet, '方法统计'); XLSX.writeFile(workbook, 'method_statistics.xlsx');
方案三:Excel自带Power Query(适合不会编程的用户)
- 打开Excel,点击「数据」选项卡 → 「获取数据」→「从文件」→「从JSON」,选择你的JSON文件导入
- 在Power Query编辑器中,选中方法名所在列(如
Column1),点击「转换」→「逆透视列」→「逆透视其他列」,此时会生成三列:方法名、版本号、count - 点击「转换」→「透视列」,设置「值列」为count,「列名」为版本号,聚合函数选择「不要聚合」
- 修改第一列表头为空白,给方法名手动加上冒号,最后关闭并上载到Excel表格即可
内容的提问来源于stack exchange,提问作者Kuba Ślawski
相关产品推荐
相关产品推荐

