本项目是一个Python自动化脚本工具集,覆盖三类最常见的办公数据处理场景,旨在替代人工重复操作、提升数据整理效率。
【模块一:Excel批量合并与清洗】
业务场景:企业每月产生多份结构不统一的销售/运营报表,手工合并耗时且易出错。
功能:自动遍历读取多个Excel文件 → 合并为单一汇总表 → 清洗空值、重复行、异常格式 → 输出按维度的汇总统计(月度/产品/人员)。
【模块二:公开网页数据采集与整理】
业务场景:需要定期从公开网页获取结构化信息(如行业资讯、商品列表、政策公示),手工复制粘贴效率低。
功能:模拟浏览器请求 → 解析HTML提取目标字段(标题、作者、标签等)→ 翻页自动遍历 → 输出为CSV文件,可直接导入Excel或数据库。
【模块三:PDF信息提取】
业务场景:企业收到大量PDF格式的发票、合同、报表,需要提取关键字段录入系统。
功能:读取PDF文档 → 定位并提取日期、金额、编号等关键信息 → 汇总输出为Excel表,替代手工逐一录入。
全部脚本采用模块化设计,修改少量配置参数即可适配不同客户的数据结构,交付周期1-2天。
【Demo 1:Excel批量合并与清洗】
输入:模拟生成的5个月度销售数据Excel文件,分布在 `sample_data/` 目录下。包含正常数据行、含空值的行(产品名称为空、销量/单价缺失)以及一个故意复制的重复月份文件,用于测试去重和清洗逻辑。
处理流程:
1. 使用 Path.glob 遍历读取所有 .xlsx 文件
2. 使用 pd.read_excel 逐个读取,并为每行标记来源文件名
3. 使用 pd.concat 合并所有DataFrame
4. 使用 drop_duplicates 去重,dropna 清洗全空行和关键列为空的行
5. 按月份+产品维度分组汇总,计算合计销售额
6. 使用 df.to_excel 输出结果文件
输出:单个格式统一的Excel文件 `合并清洗结果.xlsx`,包含清洗后的完整明细数据。
关键代码量:约200行,核心处理逻辑约50行。
【Demo 2:公开网页数据采集】
目标站点:quotes.toscrape.com(专为爬虫学习设计的公开站点,符合 robots.txt 允许规则)。
处理流程:
1. 使用 requests 发送GET请求,设置 User-Agent 模拟浏览器
2. 使用 BeautifulSoup(优先lxml、回退html.parser)解析HTML,CSS选择器定位目标元素
3. 循环翻页(自动检测"Next"按钮是否存在),每次请求间隔1秒
4. 使用 csv.DictWriter 将结构化数据写入CSV文件(UTF-8 BOM编码,兼容Excel直接打开)
输出:`采集结果_名人名言.csv`,包含名言、作者、标签、作者链接、采集时间等字段。
合规措施:已检查 robots.txt、设置请求间隔、仅采集公开数据、脚本头部标注法律边界注释。
【Demo 3:PDF信息提取】
输入:使用 reportlab 自动生成3张模拟发票PDF文件,分布在 `sample_invoices/` 目录(如生成工具不可用则自动回退到内置数据演示模式)。
处理流程:
1. 使用 pdfplumber.open 逐页读取PDF
2. 正则表达式匹配提取:发票号、日期、客户、品名、数量、单价、金额等字段
3. 异常处理:匹配失败时填入空值,不中断整个流程
4. 使用 pandas.DataFrame 汇总所有发票数据
5. 输出为格式化的Excel文件
输出:`发票提取结果.xlsx`,每行一张发票,列含发票号/日期/金额/客户名称/品名/文件名/采集时间。
关键代码量:约350行(含PDF生成),核心提取逻辑约80行。