读取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

214
利润表处理说明.md Normal file
View File

@@ -0,0 +1,214 @@
# 利润表数据处理工具使用说明
## 📋 功能介绍
本工具用于处理利润表数据,主要功能:
1. **数字单位转换**将大数字≥1转换为以亿为单位保留两位小数
2. **保留小数**:小数/比率(<1保持不变
3. **删除指定行**根据配置删除不需要的行
4. **日期置顶**第一行显示日期
5. **输出 Excel**统一输出为 `.xlsx` 格式
---
## 🚀 快速开始
### 1. 准备利润表文件
将利润表文件CSV Excel放入 `input/` 目录
**文件命名建议**文件名包含"利润表""income"
- `美的集团_利润表_合并报表_20251106.csv`
- `income_statement.xlsx`
### 2. 运行处理脚本
```bash
python3 process_income_statement.py
```
### 3. 查看结果
处理后的文件保存在 `output/` 目录文件名格式`processed_原文件名.xlsx`
---
## ⚙️ 配置文件说明
配置文件位于`config/income_statement_config.json`
### 默认配置
```json
{
"rows_to_delete": [
"股票代码",
"上市公司",
"财报类型",
"货币",
"审计意见",
"会计师事务所",
"数据来源于:理杏仁网站(lixinger.com)"
]
}
```
### 自定义配置
如需删除其他行直接在 `rows_to_delete` 数组中添加
```json
{
"rows_to_delete": ["股票代码", "上市公司", "你要删除的行名称"]
}
```
---
## 📊 数据转换规则
### 规则说明
| 原始数据 | 判断标准 | 转换结果 | 示例 |
| --------- | ---------- | ------------------------ | ---------------- |
| 大数字 | 绝对值 1 | 除以 1 亿保留 2 位小数 | 123456789 1.23 |
| 小数/比率 | 绝对值 < 1 | 保持不变 | 0.15 0.15 |
| 空值 | - | 保持空 | - |
### 示例
**输入数据:**
```
营业收入,381900000000,343200000000
毛利率,0.2543,0.2489
```
**输出数据:**
```
营业收入,3819.00,3432.00
毛利率,0.2543,0.2489
```
---
## 📝 输出格式
### 文件结构
```
第1行日期 2024/12/31 2023/12/31 2022/12/31 ...
第2行营业收入 3819.00 3432.00 3200.50 ...
第3行营业成本 2848.12 2578.45 2401.32 ...
第4行毛利率 0.2543 0.2489 0.2498 ...
...
```
### 特点
- 第一行是日期
- 大数字转换为亿保留 2 位小数
- 比率保持原样
- 删除了配置中指定的行
- 输出为 Excel 格式
---
## 🔧 常见问题
### Q1: 如何判断哪些是小数/比率?
**A**: 脚本自动判断绝对值 < 1 的数字保持不变,≥ 1 的转换为亿
### Q2: 如何添加要删除的行?
**A**: 编辑 `config/income_statement_config.json` `rows_to_delete` 中添加行名称
### Q3: 文件没有被处理怎么办?
**A**:
1. 检查文件是否在 `input/` 目录
2. 文件名建议包含"利润表""income"
3. 如果文件名不符合规则脚本会提示是否处理所有文件
### Q4: 如何处理所有文件?
**A**: 如果文件名不包含"利润表""income"脚本会询问是否处理所有文件
---
## 📂 目录结构
```
organize_excel_data/
├── config/
│ ├── balance_sheet_categories.json # 资产负债表配置
│ └── income_statement_config.json # 利润表配置(新增)
├── input/
│ └── [你的利润表文件]
├── output/
│ └── processed_[原文件名].xlsx
├── process_balance_sheet.py # 资产负债表处理脚本
├── process_income_statement.py # 利润表处理脚本(新增)
└── 利润表处理说明.md # 本文档
```
---
## 💡 使用示例
### 示例 1处理单个文件
```bash
# 1. 将文件放入 input 目录
cp 美的集团_利润表.csv input/
# 2. 运行脚本
python3 process_income_statement.py
# 3. 查看结果
open output/processed_美的集团_利润表.xlsx
```
### 示例 2批量处理
```bash
# 1. 将多个文件放入 input 目录
cp *利润表*.csv input/
# 2. 运行脚本(自动处理所有利润表文件)
python3 process_income_statement.py
# 3. 查看 output 目录
ls output/
```
---
## ⚠️ 注意事项
1. **数据精度**转换为亿后保留 2 位小数可能损失精度
2. **小数判断**绝对值 < 1 的数字被认为是比率不会转换
3. **行名称匹配**删除行时需要完全匹配包括空格和标点
4. **日期行**必须有"日期"这一行否则无法正确放置第一行
5. **输出覆盖**同名输出文件会被覆盖
---
## 🎯 与资产负债表处理的区别
| 特性 | 资产负债表 | 利润表 |
| -------- | ------------------------------- | ------------------------------ |
| 脚本名称 | `process_balance_sheet.py` | `process_income_statement.py` |
| 主要功能 | 分类汇总 | 单位转换 + 删除行 |
| 数字处理 | 保持原始数据 | 转换为亿保留 2 位小数 |
| 配置文件 | `balance_sheet_categories.json` | `income_statement_config.json` |
| 输出格式 | 按分类组织 | 保持原始顺序 |
---
**如有问题,请参考详细文档 README.md 或查看示例输出**