# 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

🧰 Excel 工具箱

本地 Web GUI · 内部办公自动化工具

Python FastAPI Windows macOS PyInstaller

无需安装 Python · 双击即用 · 浏览器操作

--- ## 💡 开发背景 政企客户经理每月需要为每个客户单位下载费用清单并发送给客户。但下载下来的原始清单(参考 [`测试文件/`](测试文件/))不能直接发出,必须经过:**数据清理 → 调整打印格式 → 打印盖章 → 扫描为电子版** 再发送。负责的客户一多,重复操作量极大。 本工具将这一流程自动化:一键清洗清单数据、生成可打印的 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 黑暗之王