记一次把 PDF 里的表格提取成 Excel 的过程(含踩坑)

背景

手上有一份 PDF 版的岗位能力说明文档(公开资料,10 页),里面有几页是表格:岗位名称、岗位描述、关键技能。要把这些数据弄到 Excel 里做后续整理。

复制粘贴试过,PDF 里选中的文字粘到 Excel 全是一坨,行列结构完全丢失。写脚本的话,pdfplumber 我是熟的,但这次环境是新机器,Python 环境都没配,为 5 张表装一套环境有点不值。于是找了在线方案,记录一下过程和结果。

过程

打开 PDF 转 Excel 工具,上传文件,输出格式选 xlsx。页码范围可以指定(比如 1-3,5),我直接留空转全部。文档是文字版 PDF,不是扫描件,所以没勾 OCR。

screenshot_02

点「开始转换」,10 页的文档等了大概 20 秒,提示处理完成,下载结果文件。

screenshot_03

结果检查

拿到 xlsx 打开看,转换结果按页分 sheet:第4页、第5页、第6页、第7页、第9页——正好是原 PDF 里带表格的 5 页,没表格的页自动跳过了,这一点挺省心。

表格内容提取基本准确,但有两个坑要提一下:

坑一:合并单元格变成 None。 原表里跨行合并的单元格,在 xlsx 里只有第一行有值,其余是空的。后续用 pandas 处理要补一句:

import pandas as pd
df = pd.read_excel('result.xlsx', sheet_name='第4页', header=None)
df = df.ffill()  # 向下填充合并单元格产生的空值

坑二:单元格内换行断字。 PDF 里一个单元格的长文本按行拆开,转换后中间带了换行符,"安全测 试"这种断词出现了几处。清洗时把换行替换成空字符串即可:

df = df.replace({r'\n': '', r'\s+(?=[\u4e00-\u9fff])': ''}, regex=True)

这两个问题不是这个工具特有的,pdfplumber 直接提取也会有,本质是 PDF 格式本身不存"表格"概念,所有表格提取都是在做版式推断。

小结

  • 文字版 PDF + 规则表格:在线工具直接可用,10 页 20 秒出结果
  • 扫描件:需要勾 OCR,准确率低一档,重要数据要人工复核
  • 合并单元格、换行断字是通用坑,拿到结果后花两分钟清洗

适合"临时处理一两份文档"的场景。如果是每天都要跑的批处理,还是老老实实写 pdfplumber 脚本接进 pipeline。

工具地址:https://gjupai.com/tools/pdf_to_excel

posted @ 2026-08-18 17:37  工具派  阅读(44)  评论(0)    收藏  举报