读取Excel 进行汇总

This commit is contained in:
2026-03-05 22:02:57 +08:00
commit 01b7759921
40 changed files with 3843 additions and 0 deletions

329
README.md Normal file
View File

@@ -0,0 +1,329 @@
# 财务报表数据处理工具集
这是一套用于处理财务报表数据的 Python 工具集,包含资产负债表和利润表处理功能。
---
## 📋 工具列表
### 主程序:财务报表统一处理工具 ⭐ 推荐使用
**脚本**`main.py`
**主要功能**
- 🔍 **自动识别**:智能识别资产负债表和利润表文件
- 📊 **统一处理**:自动调用对应的处理工具
- 📁 **合并输出**:将两个报表合并到一个 Excel 的不同 Tab 页
- 🎯 **智能命名**:自动清理文件名,去除"合并报表"等冗余文字
- 💯 **单位统一**:所有数据统一转换为亿(保留 2 位小数)
### 1. 资产负债表处理工具
**脚本**`process_balance_sheet.py`
**主要功能**
- 按照预定义分类重新组织数据
- 自动计算分类汇总
- 数字转换为亿(保留 2 位小数)
- 第一行显示日期
- 统一输出为 Excel 格式
**详细说明**:📖 [资产负债表处理说明.md](资产负债表处理说明.md)
### 2. 利润表处理工具
**脚本**`process_income_statement.py`
**主要功能**
- 将大数字转换为以亿为单位(保留 2 位小数)
- 保留小数/比率不变
- 删除指定的无用行
- 第一行显示日期
- 统一输出为 Excel 格式
**详细说明**:📖 [利润表处理说明.md](利润表处理说明.md)
---
## 🗂️ 目录结构
```
organize_excel_data/
├── config/ # 配置文件目录
│ ├── balance_sheet_categories.json # 资产负债表分类配置
│ └── income_statement_config.json # 利润表配置
├── input/ # 输入文件目录
│ ├── *资产负债表*.csv/*.xlsx # 资产负债表文件
│ └── *利润表*.csv/*.xlsx # 利润表文件
├── output/ # 输出文件目录
│ └── *.xlsx # 处理结果(包含多个 Tab
├── main.py # 主程序(推荐使用)⭐
├── process_balance_sheet.py # 资产负债表处理脚本
├── process_income_statement.py # 利润表处理脚本
├── README.md # 总体说明文档(本文件)
├── 资产负债表处理说明.md # 资产负债表详细说明
└── 利润表处理说明.md # 利润表详细说明
```
---
## 🚀 快速开始
### 1. 环境准备
确保已安装 Python 3 和必要的依赖库:
```bash
pip install pandas openpyxl
```
或使用:
```bash
pip install -r requirements.txt
```
### 2. 准备数据
将待处理的文件放入 `input/` 目录:
- 资产负债表文件(建议文件名包含"资产负债表"
- 利润表文件(建议文件名包含"利润表"
### 3. 运行相应脚本
**处理资产负债表:**
```bash
python3 process_balance_sheet.py
```
**处理利润表:**
```bash
python3 process_income_statement.py
```
### 4. 查看结果
处理完成后,文件将保存在 `output/` 目录下:
- 资产负债表:`organized_原文件名.xlsx`
- 利润表:`processed_原文件名.xlsx`
---
## 📊 处理效果对比
### 资产负债表
| 处理前 | 处理后 |
| ---------------- | ---------------- |
| 数据分散,无分类 | 按 9 大类组织 |
| 无汇总数据 | 自动计算汇总 |
| 一、资产总计 | 资产总计(简化) |
| 股票代码在第一行 | 日期在第一行 |
| 数据保持原始单位 | 数据保持原始单位 |
**输出示例:**
```
日期 2024/12/31 2023/12/31 ...
资产总计 604,352亿 486,038亿 ...
所有者权益合计 227,667亿 174,300亿 ...
负债合计 376,684亿 311,739亿 ...
类现金 216,678亿 142,001亿 ... ← 汇总行
货币资金 140,410亿 81,674亿 ...
交易性金融资产 6,936亿 1,791亿 ...
```
### 利润表
| 处理前 | 处理后 |
| ------------------ | ----------------------- |
| 数据单位为"元" | 转换为"亿"(保留 2 位) |
| 包含无用信息行 | 删除指定行 |
| 股票代码在第一行 | 日期在第一行 |
| 营业收入: 4.07E+11 | 营业收入: 4071.50 |
| 毛利率: 0.2642 | 毛利率: 0.2642(不变) |
**转换规则:**
- 大数字≥1→ 转换为亿(保留 2 位小数)
- 小数/比率(<1)→ 保持不变
---
## ⚙️ 配置说明
### 资产负债表配置
**文件**`config/balance_sheet_categories.json`
**用途**定义分类和项目归属
**示例**
```json
{
"categories": [
{
"name": "类现金",
"items": ["货币资金", "交易性金融资产", "衍生金融资产(流动)"]
}
]
}
```
### 利润表配置
**文件**`config/income_statement_config.json`
**用途**定义需要删除的行
**示例**
```json
{
"rows_to_delete": ["股票代码", "上市公司", "财报类型", "货币"]
}
```
---
## 💡 使用场景
### 场景 1财务分析
- 快速查看资产负债结构
- 按分类汇总查看各类资产/负债占比
- 利润表数据单位统一便于分析
### 场景 2数据对比
- 多年度数据横向对比
- 分类汇总数据纵向对比
- Excel 格式便于制作图表
### 场景 3报告制作
- 处理后的数据格式规范
- 可直接用于报告和演示
- 减少手工整理时间
---
## ⚠️ 注意事项
### 通用事项
1. 支持的输入文件格式`.csv``.xlsx``.xls`
2. 输出文件格式统一为 `.xlsx`Excel 格式
3. CSV 文件使用 UTF-8 编码
4. 脚本会自动处理 `input/` 目录下的相关文件
5. 输出文件会覆盖同名的已有文件
### 资产负债表特别注意
- 项目名称必须与原始数据完全匹配
- 数据保持原始单位不进行转换
- 汇总计算会自动处理空值
### 利润表特别注意
- 绝对值 1 的数字会转换为亿
- 绝对值 < 1 的数字保持不变
- 转换后可能损失精度保留 2 位小数
---
## 🔧 常见问题
### Q1: 如何批量处理多个文件?
**A**: 将所有文件放入 `input/` 目录运行相应脚本即可自动处理所有文件
### Q2: 处理后的数据准确吗?
**A**:
- 资产负债表数据保持原样仅重新组织
- 利润表大数字转换为亿保留 2 位小数比率保持不变
### Q3: 如何修改配置?
**A**:
- 资产负债表编辑 `config/balance_sheet_categories.json` 添加/修改分类
- 利润表编辑 `config/income_statement_config.json` 添加/删除要删除的行
### Q4: 文件没有被处理怎么办?
**A**:
1. 检查文件是否在 `input/` 目录
2. 检查文件名是否包含关键词资产负债表/利润表
3. 查看脚本输出的提示信息
### Q5: 如何查看详细说明?
**A**: 查看对应的详细说明文档
- 资产负债表[资产负债表处理说明.md](资产负债表处理说明.md)
- 利润表[利润表处理说明.md](利润表处理说明.md)
---
## 📖 详细文档
- 📘 [资产负债表处理说明.md](资产负债表处理说明.md) - 资产负债表处理详细说明
- 📙 [利润表处理说明.md](利润表处理说明.md) - 利润表处理详细说明
- 📗 [更新日志.md](更新日志.md) - 版本更新历史
---
## 🎯 版本历史
### v1.2 (2025-11-09)
**资产负债表:**
- 优化输出第一行显示日期而非股票代码
- 简化名称特殊分类使用配置中的 name
- 完善分类配置新增多个遗漏的资产负债项目
**利润表:**
- 新增利润表处理工具
- 数字单位转换为亿保留 2 位小数
- 删除指定的无用行
### v1.1 (2025-11-09)
- 优化输出格式统一输出为 `.xlsx` 格式
- 新增分类汇总功能自动计算每个分类的金额总和
- 优化特殊分类显示
### v1.0 (2025-11-09)
- 初始版本
- 支持 CSV Excel 文件输入
- 支持自定义分类配置
- 自动处理批量文件
---
## 📞 技术支持
如有问题或建议
1. 查看详细说明文档
2. 检查配置文件格式
3. 查看脚本输出的提示信息
---
**祝使用愉快!🎉**