Docling PDF 表格转 CSV:保留来源再逐项复核
关联原件的候选表格、manifest 和复核记录。
适用场景导出 PDF 候选表格为 CSV 与 HTML,记录原文件哈希和表序号,再检查合并单元格、跨页表头和金额列;附复核清单。
导出 PDF 候选表格为 CSV 与 HTML,记录原文件哈希和表序号,再检查合并单元格、跨页表头和金额列;附复核清单。
来源 · JevLog 编辑部 · 本站原创
原页面项目标识 · Docling
2026-10-02 新增:依据当前官方文档整理,附本站编写练习。未做真实服务调用;来源首次发布日期未确认。
背景 / 问题
Section titled “背景 / 问题”复制表格时数字还在却错列,往往比少一行更难发现。先导出候选与视觉视图,再回原 PDF 核对。Jev 可后续分流待复核项,不能凭空恢复缺失数字。
-
安装 Python、docling 与 pandas;第一次运行可能下载模型并占较多内存。
-
挑有权限的短 PDF,另存 input.pdf;下载 table-review-checklist.csv。
JevLog 原创流程图,非产品截图或实测结果。
1. 从一张易核对的表开始
Section titled “1. 从一张易核对的表开始”选 1–3 页且表头清楚的文件,人工记页码、行列数和一行关键值。先不选几百页扫描件,避免解析、OCR 和资源不足混在一起。
2. 导出两种候选视图
Section titled “2. 导出两种候选视图”代码只读本地文件,输出到新目录。manifest 记录原件哈希、表序号、行列数和输出名;表序号不等于原页码,页码由复核清单补充。
from pathlib import Pathimport hashlib, jsonfrom docling.document_converter import DocumentConverter
source = Path("input.pdf")out = Path("table-output")out.mkdir(exist_ok=True)document = DocumentConverter().convert(source).documentdigest = hashlib.sha256(source.read_bytes()).hexdigest()records = []for i, table in enumerate(document.tables, 1): frame = table.export_to_dataframe(doc=document) frame.to_csv(out / f"table-{i}.csv", index=False, encoding="utf-8-sig") (out / f"table-{i}.html").write_text(table.export_to_html(doc=document), encoding="utf-8") records.append({"source": source.name, "source_sha256": digest, "table_index": i, "rows": len(frame), "columns": len(frame.columns)})(out / "manifest.json").write_text(json.dumps(records, indent=2), encoding="utf-8")3. 对照 HTML 和 CSV
Section titled “3. 对照 HTML 和 CSV”HTML 看表头、合并关系和列错位,CSV 看列数与数据。跨页表头可能被当成数据行;金额、日期、百分号先保留原字符串,确认币种、负号和空白含义后再转类型。
4. 至少抽查三处原件
Section titled “4. 至少抽查三处原件”分别核第一行、跨页附近和最后一行,记录 original_page、table_index、issue、status、reviewer。不要因为解析成功就默认所有表格正确;资料缺失明确标 pending。
5. 复核后才交分类或财务
Section titled “5. 复核后才交分类或财务”已核对部分另存 accepted.csv,其余继续作为候选。结构坏行接 DuckDB,业务类别接 Jev。报销和金额审批仍需原件与授权流程,不能用解析结果代替签字。
练习样例:下载 table-review-checklist.csv,可在本地练习;非本站实测结果。
关联原件的候选表格、manifest 和复核记录。
- 没检测出表格不证明原件没有表格;扫描质量和版式影响解析。
- 表格应用可能解释公式文本,外部单元格按不可信输入处理。
- 每个输出能回原文件哈希和表序号。
- 至少三处核对并保留未确认项。
来源边界:依据所列公开来源整理;本站未复现演示。分类结果需人工复核,不会自动执行。
为什么同时导出 HTML?
Section titled “为什么同时导出 HTML?”HTML 便于核对表头与合并关系,CSV 便于处理;两者仍须对照原 PDF。