读取Excel 进行汇总
This commit is contained in:
329
README.md
Normal file
329
README.md
Normal 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. 查看脚本输出的提示信息
|
||||
|
||||
---
|
||||
|
||||
**祝使用愉快!🎉**
|
||||
Reference in New Issue
Block a user