30页PDF录了一下午?你该换方法了!
上周帮财务王姐处理银行流水,对方发来12个PDF文件,每个10页起步。我用Adobe Acrobat试了提取:
打开PDF→导出为Excel→等待2分钟发现表格列错位(金额列跑到备注里)合并单元格全拆分,需手动合并137处数字带空格,SUM函数直接报错#VALUE!
传统方法3大痛点:
这是用某转换器提取的结果,金额和摘要混在一起,根本没法用
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敲数字了!
免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。