本文主要是介绍使用Python将PDF表格自动提取并写入Word文档表格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将...
引言
在实际办公与数据处理场景中,PDF 文件里的表格往往无法直接复制到 Word 中,尤其是当表格结构复杂、跨页或包含不规则布局时,手动复制不仅耗时,还容易出现错位、换行混乱或格式被破坏的问题。许多用户也尝试使用在线工具或桌面转换软件,但对批量文档、结构化提取、精准写入 Word 表格的需求来说,自动化方式仍然是最高效、最可靠的解决方案。
本文将介绍如何使用 python 从 PDF 文件中提取表格数据,并将其以标准、结构化的表格形式写入 Word 文档。整个过程可以实现自动化,无需人工干预,适用于财务报表归档、合同中表格提取、数据治理流程、第三方 PDF 报表转换等多个业务场景。
本文使用的方法需要用到 Free Spire.PDF for Python 与 Free Spire.Doc for Python,可通过pip安装:
pip install spire.pdf.free, spire.doc.free
1. 加载 PDF 文件并准备 Word 文档
在处理 PDF 之前,我们需要先加载源文件并初始化 Word 文档的结构。
from spire.pdf import PdfDocument, PdfTableExtractor from spire.doc import Document, FileFormat, DefaultTableStyle, AutoFitBehaviorType, BreakType input_pdf = "sample.pdf" output_docx = "output/pdf_table_to_docx.docx" # 载入 PDF 文档 pdf = PdfDocument() pdf.LoadFphpromFile(input_pdf) # 创建 Word 文档 doc = Document() section = doc.AddSection()
说明:
PdfDocument()用于加载 PDF 文件,为后续表格提取提供基础。Document()创建 Word 文档对象,所有表格将插入到默认的 Section 内。- 我们提前设置输出路径,确保程序可以直接生成可编辑的
.docx文件。
此阶段相当于是搭建转换流程的“基础框架”。
2. 提取 PDF 表格并创建 Word 表格
接下来进入整篇文章的核心——如何从 PDF 中提取表格数据并写入 Word。
# 提取 PDF 表格数据并写入 Word 文档
table_extractor = PdfTableExtractor(pdf)
for i in range(pdf.Pages.Count):
tables = table_extractor.ExtraChina编程ctTable(i)
if tables is not None and len(tables) > 0:
for i in range(len(tables)):
table = tables[i]
# 创建 Word 表格
word_table = section.AddTable()
word_table.ApplyStyle(DefaultTableStyle.ColorfulGridAccent4)
word_table.ResetCells(table.GetRowCount(), table.GetColumnCount())
for j in range(table.GetRowCount()):
for k in range(table.GetColumnCount()):
cell_text = table.GetText(j, k).replace("\n", " ")
tr = word_table.Rows[j].Cells[k].AddParagraph().AppendText(cell_text)
tr.CharacterFormat.FontName = "微软雅黑"
tr.CharactejsrFormat.FontSize = 11
word_table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)
section.AddParagraph().AppendBreak(BreakType.LineBreak)关键步骤解析
(1)逐页读取 PDF 表格
ExtractTable(i) 会返回指定页面上解析出的所有表格。
PDF 本身没有真正意义上的“表格结构”,因此工具会根据线条、文本排列、单元格间距识别表格。
这一步决定了能否正确提取表格,是整个流程最重要的环节之一。
(2)动态创建 Word 表格
word_table = section.AddTable() word_table.ResetCells(row_count, column_count)
利用提取出的行列数,在 Word 中创建结构一致的表格。
ResetCells会在 Word 中按行列生成一个空表格框架。- 表格采用
ColorfulGridAccent4样式,使结果更易读。
(3)处理单元格内容
cell_text = table.GetText(j, k).replace("\n", " ")PDF 单元格中经常包含换行符,因此写入 Word 前需要清理文本,避免格式错乱。
同样为提升最终文档的可读性,我们对文本进行了基础格式设置:
tr.CharacterFormat.FontName = "微软雅黑" tr.CharacterFormat.FontSize = 11
使生成的 Word 文档具有更标准、更整洁的视觉效果。
(4)自动表格www.chinasem.cn宽度适配
word_table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)
这一步能让表格自动适配 Word 页面宽度,在不同屏幕、Word 布局里都有良好的可视性。
3. 保存 Word 文档
最后,执行保存操作即可生成完整的 Word 文件。
doc.SaveToFile(output_docx, FileFormat.Docx)
Word 文档会按前述的结构与样式生成,可直接打开查看,也适用于进一步编辑、排版或作为报告的一部分。
提取写入结果

关键类与方法说明表
为了便于查阅,下面整理本文中主要使用到的类、属性与方法。
| 类 / 方法 | 说明 |
|---|---|
PdfDocument | 表示 PDF 文档对象,负责加载源文件 |
PdfTableExtractor | 从 PDF 页www.chinasem.cn面中解析表格的核心类 |
ExtractTable(page_index) | 返回指定页面的表格集合 |
Document | Word 文档对象 |
AddSection() | 添加文档节,用于插入表格、段落等内容 |
section.AddTable() | 在 Word 中创建新表格 |
ResetCells(row, col) | 根据行列数初始化 Word 表格结构 |
AppendText() | 向表格单元格写入文本 |
DefaultTableStyle | Word 表格样式枚举 |
AutoFitToWindow | 表格宽度自动适配页面 |
总结
通过本文示例,你已经了解如何使用 Python 自动化实现 PDF 表格 → Word 表格 的完整流程。从 PDF 识别表格、解析行列结构,到在 Word 中创建并填充内容,整个过程高度自动化,特别适用于批量处理与业务系统集成场景。
相比手动复制格式凌乱、在线工具功能受限、桌面工具难以批量处理,代码方式具有更高的灵活性与可控性。你可以在此基础上扩展更多能力,例如批量转换、内容清洗、模板合并、文本识别(OCR)等,为企业类文档处理提供稳定高效的解决方案。
如果你正在处理大量 PDF 表格或需要长期的文档自动化流程,这种基于 Python 的方案将为你的工作带来显著提升。
以上就是使用Python将PDF表格自动提取并写入Word文档表格的详细内容,更多关于Python PDF表格提取并写入Word的资料请关注编程China编程(www.chinasem.cn)其它相关文章!
这篇关于使用Python将PDF表格自动提取并写入Word文档表格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!