和各大网站做视频的工作,高校网站群管理系统,网站更换域名seo,前端app开发流程在对PDF中的表格进行再利用时#xff0c;除了直接将PDF文档转换为Excel文件#xff0c;我们还可以提取PDF文档中的表格数据并写入Excel工作表。这样做可以避免一些不必要的文本和格式带来的干扰#xff0c;获得更易于分析和处理的表格数据#xff0c;并方便进行更多的格式设…在对PDF中的表格进行再利用时除了直接将PDF文档转换为Excel文件我们还可以提取PDF文档中的表格数据并写入Excel工作表。这样做可以避免一些不必要的文本和格式带来的干扰获得更易于分析和处理的表格数据并方便进行更多的格式设置。利用Python我们可以实现对PDF表格数据的批量提取并写入Excel工作表中实现高效的提取写入操作。本文将介绍如何使用Python提取PDF文档中的表格并写入Excel文件中。
本文所使用的方法需要用到Spire.PDF for Python和Spire.XLS for PythonPyPIpip install spire.pdf, spire.xls。
申请免费License
Python提取PDF表格数据写入Excel工作表
提取表格需要用到Spire.PDF for Python中的PdfTableExtractor类。我们可以使用载入的PDF文档创建一个PdfTableExtractor对象然后使用PdfTableExtractor.ExtractTable()方法直接提取指定页面的所有表格返回为列表。然后我们可以使用PdfTable.GetText()来获取表格指定单元格的文本再使用Spire.XLS for Python新建工作表并写入读取的数据到工作表中的相应位置。最后对工作表进行合适的格式设置即可完成PDF表格数据到Excel工作表的提取。
以下是详细操作步骤
导入所需模块。创建 PdfDocument 对象并使用 PdfDocument.LoadFromFile() 方法加载PDF文档。创建一个 Workbook 对象并使用 Workbook.Worksheets.Clear() 方法清除默认工作表。为加载的PDF文档创建一个 PdfTableExtractor 对象。使用 PdfTableExtractor.ExtractTable() 方法提取文档中每一页的表格。遍历每个表格 使用 Workbook.Worksheets.Add() 方法为每个表格在工作簿中添加一个工作表。使用 Table.GetText() 方法遍历各行各列以获取单元格值并通过 Worksheet.Range[].Text 属性将其插入工作表的相应位置。设置单元格格式。 使用 Workbook.SaveToFile() 方法保存工作簿。释放资源。
代码示例
from spire.pdf import *
from spire.xls import *# 创建一个 PdfDocument 对象
pdf PdfDocument()
# 加载一个 PDF 文档
pdf.LoadFromFile(示例.pdf)# 创建一个 Workbook 对象
workbook Workbook()
# 清除默认工作表
workbook.Worksheets.Clear()# 创建一个 PdfTableExtractor 对象
extractor PdfTableExtractor(pdf)# 从每个 PDF 页面提取表格
for pageIndex in range(pdf.Pages.Count):tables extractor.ExtractTable(pageIndex)# 如果有多个表格则迭代if tables is not None:for tableIndex in range(len(tables)):# 获取一个表格table tables[tableIndex]# 为该表格创建一个工作表sheet workbook.Worksheets.Add(fPage{pageIndex 1}-Table{tableIndex 1})# 迭代表格的行和列for rowIndex in range(table.GetRowCount()):for colIndex in range(table.GetColumnCount()):# 获取单元格的值text table.GetText(rowIndex, colIndex)cellText text.replace(\n, )# 将单元格的值写入工作表中的相应单元格sheet.Range[rowIndex 1, colIndex 1].Text cellText# 设置表头行样式sheet.Rows.get_Item(0).Style.Font.FontName HarmonyOS Sans SCsheet.Rows.get_Item(0).Style.Font.Size 12sheet.Rows.get_Item(0).Style.Font.IsBold Truesheet.Rows.get_Item(0).Style.HorizontalAlignment HorizontalAlignType.Center# 设置数据行样式for i in range(1, sheet.Rows.Count):sheet.Rows.get_Item(i).Style.Font.FontName HarmonyOS Sans SCsheet.Rows.get_Item(i).Style.Font.Size 12sheet.Rows.get_Item(i).Style.HorizontalAlignment HorizontalAlignType.Left# 自动调整列宽for j in range(1, sheet.Columns.Count):sheet.AutoFitColumn(j)# 保存工作簿
workbook.SaveToFile(output/PDFTableToExcel.xlsx, FileFormat.Version2016)
workbook.Dispose()
pdf.Close()结果
本文演示了如何使用Python提取PDF文档表格数据到Excel文件中。
更多PDF文档操作技巧请前往Spire.PDF for Python教程查看。