PDF 里的表格导成 CSV 怎么选?网格线、列对齐与 TSV 的差别

对账单、报价单、实验数据表想拉进 Excel 继续算,先搞清楚工具是怎么「认出」一张表的,导出前那一眼预览才看得明白

我手头有一份几十页的对账单 PDF,只想把里面的表格拿去 Excel 做透视,正文一段都不需要。这种需求用「复制粘贴」基本会散成一列,用 OCR 又容易把数字认错。NBTools 的 PDF 转文字 里有个单独的 精确与表格 模式,专门按版式抽取文字和表格,能直接下 CSV。这篇只讲表格这一支:工具怎么认表、导出的几种文件该怎么挑、以及预览里看着不对时该动哪个开关。

三种模式(快速提取 / 精确与表格 / 扫描件 OCR)的完整对比和文字型 PDF、扫描件的通用流程写在 PDF 转文字主指南 里,这里不重复。

从一份 PDF 里导出表格,四步

  1. 选入 PDF。工具会先看前 3 页有没有文字层:有效字符数达到 20 就判定为文字型,否则提示像扫描件、建议换 OCR 模式。
  2. 把模式切到 精确与表格 / pdfplumber · 结构/CSV。这一步会按需加载约 1.7MB 的解析模块,只在进入本模式时才下载。
  3. 在「页面范围」里限定要抽的页,留空是全部,也可以写 1-3,5,8 这样的写法(中英文逗号、空格都能分隔,-、~、— 都认作范围)。表格多时先只跑 1 页试参数更省事。
  4. 点 识别表格并导出 CSV,先看每表的预览,再决定下单个 CSV / TSV,还是「下载全部 CSV」。

结果里每张表会标成「第 N 页 · 表 M(R 行 × C 列)」,并注明是网格线识别还是列对齐推断得来的——这个标注是判断表格可不可信的关键,下面细说。

两种「认表」方式,可信度不一样

来源标注依据适合要留意
网格线识别页面里真实画出的表格线带框线的报表、发票、明细表线断了可能把两行并成一行
列对齐推断按文字的横向坐标聚成列,列容差 8pt,列间空隙取字高中位数的 0.35 倍与 2pt 中较大者无框线、靠留白排版的表格没有框线可依,列数靠推断

推断成表还有一道门槛:每一列至少要有 40% 的行填了内容,并且至少 2 行填满 2 列以上,否则不当成表格。所以稀疏的名单、目录页抽不出表是正常的,不是漏了。反过来,双栏排版的正文有时会被兜底判成一张很宽的表——导出前扫一眼行×列数就能发现;这类版式问题的更多例子见主指南。

CSV、TSV、下载全部,分别是什么

按钮产出什么时候用
每表 CSV文件名-p页码-table序号.csv只要某几张表,逐张挑着下
每表 TSV同上但扩展名 .tsv单元格里带逗号,或要直接粘进表格软件
下载全部 CSV文件名-tables.csv全篇表格一次带走

CSV 按 RFC 4180 规则转义,字段里含逗号、引号、换行时会自动加引号;TSV 用制表符分隔,并把单元格内部的制表符换成空格,避免串列。两种文件都写了 UTF-8 BOM(\uFEFF)——这行不是为了好看:Excel 直接打开无 BOM 的 UTF-8 CSV 常把中文显示成乱码,加了 BOM 能少踩一次坑。如果你要把文件喂给程序处理,记得按 UTF-8 with BOM 读。

还有一点容易误会:预览默认只显示前 20 行,但下载的是整张表,不是只导 20 行。行数很大的对账单在预览里看着短,属正常。

几个开关怎么调

  • 尽量保留原始排版 默认开着,适合多栏、需要对齐的表格;抽出来全是散字时可以关掉再试。
  • 只想核对某个科目,用下方的正则 / 关键词全文搜索,例如 发票号码|¥\s?\d+。它默认按正则且区分大小写,命中最多列 200 条,可以复制命中行。
  • 表格抽不出来先看文字层:页面提示「没有提取到文字」时,扫描件该换 OCR 模式;若是文字型却空了,可能是特殊内嵌字体解析不了。
  • 加密 PDF 会在选文件后出现密码框,只在本地用你输入的密码解密,工具不提供找回或破解密码。

工具没有设文件大小和页数上限,但页数越多、页面越花,本地解析等待越久,通常先限定页范围跑一小段更顺。

文件会不会上传

PDF 是通过浏览器的 arrayBuffer() 本地读入的,解析、渲染、表格识别都在浏览器里完成,导出的 CSV 也是本地生成的 Blob 下载,文件内容不经过任何服务器。需要如实提一句:切到精确与表格模式时会按需下载约 1.7MB 的解析模块,OCR 模式首次还要下约 8MB 的识别引擎与语言包——这是下载引擎,不是上传你的 PDF;之后走浏览器缓存。

常见问题

「网格线识别」和「列对齐推断」有什么区别?

前者靠页面里真实画出的表格线切分单元格,适合带框线的报表;后者在没有框线时按文字横向坐标聚成列,列容差 8pt,并要求每列至少 40% 的行有内容、至少 2 行填满 2 列以上才判定为表格。结果区会标注每张表来自哪种方式,推断出来的表建议多看一眼预览。

为什么预览只有 20 行,是不是只导出了前 20 行?

不是。预览上限是 20 行,只是为了让页面别太长;点 CSV / TSV 或「下载全部 CSV」导出的是整张表。判断表格有没有抽对,看标题里的「R 行 × C 列」和前 20 行的对齐情况就够了。

CSV 用 Excel 打开中文乱码怎么办?

工具导出的 CSV/TSV 都带 UTF-8 BOM(\uFEFF),就是为了避免 Excel 打开无 BOM 的 UTF-8 文件时中文乱码。如果仍然乱码,检查是不是用文本导入向导指定了别的编码;把文件交给程序处理时,记得按 UTF-8 with BOM 读取。

该下 CSV 还是 TSV?

常规用 CSV,按 RFC 4180 转义,字段里的逗号、引号、换行会自动加引号。单元格内容本身制表符较多、或想直接粘进表格软件时选 TSV,它用制表符分隔并把单元格内的制表符换成空格。多张表可以用「下载全部 CSV」一次拿齐。

双栏正文被当成一张宽表怎么办?

这是列对齐推断在无框线版式上的常见误判:导出前看「R 行 × C 列」,列数异常多就先别下。可以先关掉「尽量保留原始排版」重试,或用页面范围只跑含表的那几页;更完整的版式排查思路见 PDF 转文字主指南。

表格抽取会把 PDF 传到服务器吗?

不会。文件由浏览器本地读入,解析、表格识别和 CSV 生成都在本机完成,导出是本地 Blob 下载。切到「精确与表格」模式会按需下载约 1.7MB 的解析模块,属于下载引擎而非上传文件,之后走浏览器缓存。

延伸阅读

工具入口

PDF转文本立即使用 →

提取PDF文字与表格,支持扫描件OCR

作者:NBTools · 更新于 2026年11月4日 · 阅读约 5 分钟