# Excel工具箱
**Repository Path**: loveliulm_admin/excel-toolbox
## Basic Information
- **Project Name**: Excel工具箱
- **Description**: 一个Excel工具箱
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-06-02
- **Last Updated**: 2026-06-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
---
## 💡 开发背景
政企客户经理每月需要为每个客户单位下载费用清单并发送给客户。但下载下来的原始清单(参考 [`测试文件/`](测试文件/))不能直接发出,必须经过:**数据清理 → 调整打印格式 → 打印盖章 → 扫描为电子版** 再发送。负责的客户一多,重复操作量极大。
本工具将这一流程自动化:一键清洗清单数据、生成可打印的 PDF,盖章扫描后还能按客户自动分割为独立 PDF,直接发给客户。
---
> ⚠️ **重要提醒:使用工具前,请先关闭所有 Office / WPS 应用!**
>
> 如果 Excel 或 WPS 正在运行中打开着相关文件,脚本可能因文件被占用而处理失败。
---
## 🔄 推荐操作流程
日常发送费用清单的标准流程,按顺序使用以下功能:
```
① Excel 处理 ② Excel 转 PDF ③ 打印盖章、扫描 ④ PDF 分割重命名
清洗原始清单 → 生成可打印 PDF → 打印后盖章 → 将合并的扫描件
调整打印格式 合并为一个文件 扫描为一个 PDF 按客户拆分为独立 PDF
```
---
## 📋 功能概览
| 功能 | 类型 | 适用场景 | 平台 |
|------|------|----------|------|
| **Excel 处理** | 🔵 核心 | 数据清洗、行列删除、格式调整、A4 横向打印布局 | ✅ 跨平台 |
| **Excel 转 PDF** | 🔵 核心 | 批量转换 Excel 为 PDF,自动合并为单一文件 | ⚠️ 仅 Windows |
| **PDF 分割重命名** | 🔵 核心 | 拆分合并的 PDF,按原始文件页数还原并重命名 | ✅ 跨平台 |
| **电话号码提取** | ⚪ 附加 | 从 Excel B 列批量提取号码,逗号分隔输出 | ✅ 跨平台 |
| **Excel 修改重命名** | ⚪ 附加 | 删除 A1 和文件名的前 2 个字符,原地修改 | ✅ 跨平台 |
| **Excel 汇总生成** | ⚪ 附加 | 提取每个文件最后一个非空单元格,生成汇总报告 | ✅ 跨平台 |
---
## 📖 功能详解
### 核心功能
以下 3 个功能构成了日常发送费用清单的标准流程,按顺序使用。
### 1. Excel 处理
批量处理文件夹中所有 `.xlsx` 文件,自动执行以下清洗步骤:
1. **删除最后一行** — 操作员行
2. **删除最后三列** — 清理多余的汇总列
3. **文本转数字** — 自动将文本格式的数字转为真实数值
4. **删除全零列** — 移除整列都为 0 的列
5. **更新 C 列** — 将 C 列客户名称统一为出现最频繁的值
6. **处理首行** — 修改首行标题
7. **调整列宽** — 根据内容自动适配列宽
8. **设置打印布局** — A4 横向、适应页宽,方便直接打印
> ⚠️ **处理完成后会生成 `filename_mapping.xlsx`**,记录了处理后的文件名与原始文件名的对照关系。请**手工打开检查**,确认映射正确后,在进行下一步(Excel 转 PDF)之前**手动删除此文件**。
| | |
|---|---|
| **输入** | 包含 `.xlsx` 文件的文件夹 |
| **输出** | 文件夹下 `processed_files/` 目录 |
---
### 2. Excel 转 PDF
通过 Microsoft Excel 将 `.xlsx` / `.xls` 文件批量转换为 PDF,然后合并为一个 PDF 文件。
- A4 横向布局、适应页宽
- 自动移除页脚(页码/标题等)
- 按文件名自然排序处理
| | |
|---|---|
| **输入** | 包含 Excel 文件的文件夹 |
| **输出** | `converted_pdfs/`(单个 PDF,检查用)+ `merged_pdfs/`(合并后的 PDF,打印盖章用) |
| **平台** | ⚠️ 仅 Windows,需安装 Microsoft Excel 或 WPS Office |
---
### 3. PDF 分割重命名
当你有一个"扫描合并后的 PDF"和"原始 PDF 文件所在的文件夹"时,这个功能会:
- 读取原始文件夹中每个 PDF 的页数
- 按这些页数从合并 PDF 中依次切分出对应页面
- 用原始文件名命名切分后的文件
典型场景:功能 2 生成的 `merged_pdfs/` 合并 PDF 打印盖章后,扫描为一个 PDF,再按原始文件页数还原为独立文件。
| | |
|---|---|
| **输入** | ① 合并后的 PDF 文件 ② 包含原始 PDF 的文件夹 |
| **输出** | 文件夹下 `扫描后分割文件/` 目录 |
---
### 附加功能
以下工具为辅助性质,按需独立使用。
---
### 4. 电话号码提取
从文件夹中所有 Excel 文件的 **B 列**提取非空内容,用逗号连接后输出。
| | |
|---|---|
| **输入** | 包含 `.xlsx` / `.xls` 文件的文件夹 |
| **输出** | Web 界面日志区(所有提取的号码,逗号分隔) |
---
### 5. Excel 修改重命名
原地修改文件夹中所有 `.xlsx` 文件,同时修改内容与文件名:
- **A1 单元格** — 删除前 2 个字符(源字符串长度 ≥ 2 时)
- **文件名** — 删除前 2 个字符(文件名长度 ≥ 3 时)
> ⚠️ **注意**:此功能直接修改原始文件,不生成副本,建议操作前备份。
| | |
|---|---|
| **输入** | 包含 `.xlsx` 文件的文件夹 |
| **输出** | 原地修改(同名覆盖) |
---
### 6. Excel 汇总生成
读取文件夹中所有 Excel 文件,提取每个文件**最后一行、最后一列**的非空单元格值,生成汇总报告。
汇总报告格式:
| 原始 Excel 文件名 | 提取数据(最后一列最后一行) |
|---|---|
| `部门A.xlsx` | 结余 12,500.00 |
| `部门B.xlsx` | 结余 8,320.00 |
| ... | ... |
- 自动跳过汇总文件自身(避免重复读取)
- 自动调整列宽,方便查看
- 支持 `.xlsx` 和 `.xls` 格式
| | |
|---|---|
| **输入** | 包含 Excel 文件的文件夹 |
| **输出** | 文件夹下 `summary_report.xlsx` |
---
## 🚀 使用方式
### Windows 打包版(推荐新手)
1. 下载 `Excel工具箱.zip`
2. 解压到任意目录(路径不要有特殊字符)
3. 双击 `Excel工具箱.exe`
4. 浏览器自动打开 `http://127.0.0.1:8000`,左侧选择功能,右侧操作
### 源码运行(开发者)
```bash
pip install -r requirements.txt
python run.py
```
> macOS 用户:`pywin32` 仅 Windows 需要,安装报错可跳过。
---
## 🧪 测试文件
项目根目录下的 **[`测试文件/`](测试文件/)** 文件夹包含了 3 个 Excel 测试文件(`测试文件.xlsx`、`测试文件 (2).xlsx`、`测试文件 (3).xlsx`),可用于批量处理测试。
> 建议:首次使用某个功能时,先用测试文件验证效果,确认无误后再处理正式数据。
---
## 💻 系统要求
| 项目 | 要求 |
|------|------|
| 操作系统 | Windows 10/11 (64位) 完整支持;macOS/Linux 可运行 5/6 个功能 |
| Python | 打包版不需要;源码运行需 Python 3.10+ |
| Microsoft Excel | 仅 **Excel 转 PDF** 功能需要,WPS Office 亦可 |
| 浏览器 | Chrome / Edge / Firefox 均可 |
---
## 🛠️ 开发者文档
- **[`doc/architecture.md`](doc/architecture.md)** — 架构总览、分层设计、日志机制、打包方案、新增工具指南
- **[`AGENTS.md`](AGENTS.md)** — AI 编程代理工作指令
---
Very good tool ❤️ Love from 黑暗之王