告别PDF表格手动录入:用Python批量提取到Excel,准确率99%!

告别PDF表格手动录入:用Python批量提取到Excel,准确率99%!

30页PDF录了一下午?你该换方法了!

上周帮财务王姐处理银行流水,对方发来12个PDF文件,每个10页起步。我用Adobe Acrobat试了提取:

  1. 打开PDF→导出为Excel→等待2分钟
  2. 发现表格列错位(金额列跑到备注里)
  3. 合并单元格全拆分,需手动合并137处
  4. 数字带空格,SUM函数直接报错#VALUE!

告别PDF表格手动录入:用Python批量提取到Excel,准确率99%!

传统方法3大痛点:

  • 格式错乱:合并单元格拆分、列不对齐(如图1红框处)
  • 效率低下:1页PDF手动录入需6分钟,100页=10小时
  • 错误率高:数字看错、小数点错位(上次多录一个0赔了2000)

告别PDF表格手动录入:用Python批量提取到Excel,准确率99%!

这是用某转换器提取的结果,金额和摘要混在一起,根本没法用

15 行 Python 代码搞定(复制粘贴运行)

import pdfplumber

# 打开PDF文件(替换成你的文件路径)
with pdfplumber.open("银行流水.pdf") as pdf:
    # 获取第1页(从0开始计数)
    page = pdf.pages[0]
    # 提取表格(自动识别边框)
    table = page.extract_table()
    
    # 打印提取结果(调试用)
    for row in table[:3]:  # 只显示前3行
        print([cell.strip() if cell else "" for cell in row])

# 输出示例:
# ['交易日期', '摘要', '金额', '余额']
# ['2023-05-01', '工资入账', '15000.00', '23500.56']

总结 5 个实战技巧

  1. 加密PDF:需先解密!代码里加password=”密码”参数
with pdfplumber.open("加密文件.pdf", password="123456") as pdf:
  1. 无框表格:添加table_settings参数
table = page.extract_table(table_settings={"vertical_strategy": "text", "horizontal_strategy": "text"})
  1. 数字带空格:用str.replace(” “, “”)清洗
df[2] = df[2].str.replace(" ", "").astype(float)  # 金额列去空格转数字
  1. 多表格混排:按区域提取
table = page.extract_table(bbox=(0, 200, 600, 800))  # 只提取Y轴200-800区域
  1. 安装失败:换国内源
pip install pdfplumber -i https://pypi.tuna.tsinghua.edu.cn/simple

重大提醒

  1. 先备份PDF文件!代码不会修改原文件,但以防万一
  2. 扫描版PDF无法提取(需OCR),本方法仅支持文字型PDF

目前把代码里的”银行流水.pdf”换成你的文件,3分钟就能喝上咖啡~ 再也不用对着PDF敲数字了!

欢迎评论区分享一下自己遇到的问题~~

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
_叶耶耶_的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容