# 财务报表数据处理工具集 这是一套用于处理财务报表数据的 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. 查看脚本输出的提示信息 --- **祝使用愉快!🎉**