[特殊字符] 扫描式处理:Python 自动提取 PDF 中关键词相关表格并导出为 Excel

发布于:2025-07-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

本文演示如何利用 pdfplumber 批量处理指定文件夹下 PDF 文档:定位关键词(如“主要会计数据”)出现的页码及下一页,提取其中的表格并保存为独立 Excel 文件。适用于财务报告、审计表格、统计报表等场景。


1️⃣ 第一步:批量收集 PDF 文件路径

import os

path = 'PDF'
files = [os.path.join(path, f) for f in os.listdir(path)]
  • 使用 os.listdir() 获取文件夹下所有 PDF;

  • 拼接完整路径后存储到 files 列表,便于批量处理。


2️⃣ 示例脚本:查找关键词并导出表格

import pdfplumber
from openpyxl import Workbook

key_words = "主要会计数据"

for file in files:
    with pdfplumber.open(file) as pdf:
        wb = Workbook()
        wb.remove(wb.worksheets[0])

        pages_wanted = []
        for idx, page in enumerate(pdf.pages):
            if key_words in page.extract_text():
                pages_wanted.extend([idx, idx+1])
                break

        for i in pages_wanted:
            page = pdf.pages[i]
            tables = page.extract_tables()
            if tables:
                ws = wb.create_sheet(f"Sheet{i+1}")
                for table in tables:
                    for row in table:
                        ws.append(row)

        out_name = os.path.splitext(os.path.basename(file))[0]
        wb.save(f"Excel/{out_name}.xlsx")
  • .extract_text() 用于查找关键词所在页;

  • .extract_tables() 提取该页表格内容;

  • 使用 openpyxl 写入 Excel,每个表对应一个工作表;

  • 模仿页面编号给 sheet 命名。


📌 技术说明与推荐设置


🖼️ 结果展示区

✅ 优化与扩展建议

功能 建议
📦 批量处理 可接入 os.walk() 递归处理子目录;
⚙️ 精准提取 使用 page.crop(...)table_settings 定位表格区域(示例见pdfplumber文档) arXiv+10Medium+10Python 包索引+10
🧩 排错机制 若某页未提取表格,可记录日志或存储空表;
🗄 合并数据 可将多个表格结果汇总到一个 Excel 并生成摘要页;
🚀 更换工具 对于更复杂财务表格,可考虑 Camelot 或 Tabula 提供更多控制和效果优化;

 更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2


🧠 总结

本文提供了一种 关键词驱动 + 表格提取 + Excel 输出 的自动化脚本流程,适合常见金融、财务、审计类 PDF 报表的快速结构化处理。


网站公告

今日签到

点亮在社区的每一天
去签到