
30页PDF录了一下午?你该换方法了!
上周帮财务王姐处理银行流水,对方发来12个PDF文件,每个10页起步。我用Adobe Acrobat试了提取:
- 打开PDF→导出为Excel→等待2分钟
- 发现表格列错位(金额列跑到备注里)
- 合并单元格全拆分,需手动合并137处
- 数字带空格,SUM函数直接报错#VALUE!

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

这是用某转换器提取的结果,金额和摘要混在一起,根本没法用
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 个实战技巧
- 加密PDF:需先解密!代码里加password=”密码”参数
with pdfplumber.open("加密文件.pdf", password="123456") as pdf:
- 无框表格:添加table_settings参数
table = page.extract_table(table_settings={"vertical_strategy": "text", "horizontal_strategy": "text"})
- 数字带空格:用str.replace(” “, “”)清洗
df[2] = df[2].str.replace(" ", "").astype(float) # 金额列去空格转数字
- 多表格混排:按区域提取
table = page.extract_table(bbox=(0, 200, 600, 800)) # 只提取Y轴200-800区域
- 安装失败:换国内源
pip install pdfplumber -i https://pypi.tuna.tsinghua.edu.cn/simple
重大提醒:
- 先备份PDF文件!代码不会修改原文件,但以防万一
- 扫描版PDF无法提取(需OCR),本方法仅支持文字型PDF
目前把代码里的”银行流水.pdf”换成你的文件,3分钟就能喝上咖啡~ 再也不用对着PDF敲数字了!
欢迎评论区分享一下自己遇到的问题~~
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END
















暂无评论内容