2026/2/14 13:24:27
网站建设
项目流程
深圳好的网站建,艺术网站源码,wordpress优化打开速度插件,微软公司做网站的软件在数据处理与办公自动化场景中#xff0c;PDF 表格因格式稳定被广泛使用#xff0c;但不可直接编辑的特性#xff0c;给数据统计、分析和二次加工带来诸多不便。手动复制粘贴不仅效率低下#xff0c;还容易出现数据错位、遗漏等问题。
本文将分享一种高效的解决方案—基于P…在数据处理与办公自动化场景中PDF 表格因格式稳定被广泛使用但不可直接编辑的特性给数据统计、分析和二次加工带来诸多不便。手动复制粘贴不仅效率低下还容易出现数据错位、遗漏等问题。本文将分享一种高效的解决方案—基于Python结合Spire系列库实现 PDF 表格数据的精准提取并分别导出为 TXT 文本和 Excel 表格格式。该方案无需复杂的正则表达式或OCR识别代码简洁易上手适合批量处理各类PDF表格文件。一、准备工作安装所需 Python 库本次实战需要两个核心库分别负责 PDF 表格提取和 Excel 文件生成功能分工明确Spire.PDF for Python一款轻量级 PDF 处理库支持直接识别 PDF 中的表格结构精准提取单元格数据无需依赖额外的 OCR 工具。Spire.XLS for Python专业的 Excel 操作库可实现 Excel 文件的创建、数据写入、格式优化等功能完美适配各类 Excel 版本。打开命令行终端执行以下pip命令完成安装建议在虚拟环境中操作避免版本冲突/* by 01130.hk - online tools website : 01130.hk/zh/htmlescape.html */ pip install Spire.PDF pip install Spire.XLS二、实战1提取 PDF 表格数据到 TXT 文件TXT 文件具有体积小、兼容性强的特点适合快速查看和传输数据。使用 Spire.PDF for Python 提取数据并写入 TXT 的核心逻辑是按页面→表格→行→列的层级遍历 PDF 内容最终将数据格式化输出。实现步骤拆解加载 PDF 文档通过PdfDocument类的LoadFromFile()方法读取目标 PDF 文件支持相对路径和绝对路径。初始化提取工具创建PdfTableExtractor对象用于识别并提取 PDF 页面中的表格数据。层级遍历数据依次遍历 PDF 的每一页、每页中的每个表格、表格的每一行和每一列通过GetText(rowIndex, columnIndex)方法获取单元格文本。写入 TXT 文件将提取的数据按“列用空格分隔、行用换行分隔”的格式整理写入TXT文件并指定 UTF-8 编码避免中文乱码。完整代码示例含详细注释/* by 01130.hk - online tools website : 01130.hk/zh/htmlescape.html */ from spire.pdf.common import * from spire.pdf import * # 1. 加载PDF文档替换为你的目标PDF文件路径 pdf_doc PdfDocument() pdf_doc.LoadFromFile(表格.pdf) # 2. 创建列表存储提取的数据便于后续拼接 data_list [] # 3. 初始化表格提取器 table_extractor PdfTableExtractor(pdf_doc) # 4. 遍历PDF的每一页 for page_idx in range(pdf_doc.Pages.Count): # 提取当前页面的所有表格 tables table_extractor.ExtractTable(page_idx) # 判断当前页面是否存在表格避免空指针异常 if tables is not None and len(tables) 0: # 遍历每个表格 for table in tables: row_num table.GetRowCount() # 获取表格总行数 col_num table.GetColumnCount() # 获取表格总列数 # 遍历表格的每一行 for i in range(row_num): row_data [] # 遍历该行的每一列 for j in range(col_num): # 获取单元格文本 cell_text table.GetText(i, j) row_data.append(cell_text) # 用空格分隔列数据拼接成一行 data_list.append( .join(row_data)) # 不同表格之间添加空行区分数据边界 data_list.append() # 5. 将数据写入TXT文件 with open(提取PDF表格.txt, w, encodingutf-8) as f: f.write(\n.join(data_list)) # 6. 释放资源避免内存占用 pdf_doc.Close()三、实战2提取 PDF 表格数据到 Excel 文件Excel 文件支持数据筛选、公式计算、图表生成等高级功能是数据分析的首选格式。本示例需要结合Spire.PDF for Python和Spire.XLS for Python在提取数据的基础上实现 Excel 文件的创建和数据写入。实现步骤拆解数据提取的步骤与 TXT 示例一致额外增加 Excel 文件操作的3个核心步骤创建Excel工作簿实例化Workbook对象清空默认工作表为后续添加新表格做准备。数据写入单元格Excel 的行列索引从1开始与Python的0索引不同因此需要将表格的行、列索引分别1确保数据写入正确位置。优化表格格式调用AutoFitColumns()方法设置列宽自适应内容提升表格可读性最后保存为指定版本的Excel文件。完整代码示例含详细注释from spire.pdf import * from spire.xls import * # 1. 加载PDF文档 pdf_doc PdfDocument() pdf_doc.LoadFromFile(表格.pdf) # 2. 创建Excel工作簿并清空默认工作表 excel_workbook Workbook() excel_workbook.Worksheets.Clear() # 3. 初始化表格提取器 table_extractor PdfTableExtractor(pdf_doc) # 4. 工作表编号用于命名新工作表 sheet_index 1 # 5. 遍历PDF的每一页 for page_idx in range(pdf_doc.Pages.Count): tables table_extractor.ExtractTable(page_idx) if tables is not None and len(tables) 0: # 遍历当前页面的每个表格 for table in tables: # 创建新工作表命名为“sheet编号” worksheet excel_workbook.Worksheets.Add(fsheet{sheet_index}) row_num table.GetRowCount() col_num table.GetColumnCount() # 遍历表格单元格 for i in range(row_num): for j in range(col_num): cell_text table.GetText(i, j) # Excel索引从1开始需将i和j分别1 worksheet.Range[i 1, j 1].Value cell_text # 设置列宽自适应内容优化显示效果 worksheet.AllocatedRange.AutoFitColumns() # 工作表编号递增 sheet_index 1 # 6. 保存Excel文件指定保存路径和Excel版本 excel_workbook.SaveToFile(导出PDF表格到Excel.xlsx, ExcelVersion.Version2016) # 7. 释放资源 pdf_doc.Close() excel_workbook.Dispose()四、关键注意事项文件路径问题若运行代码时提示“文件不存在”请检查 PDF 文件路径是否正确建议使用绝对路径如C:/data/表格.pdf避免路径错误。中文乱码处理写入 TXT 文件时务必指定encodingutf-8导出 Excel 文件时Spire.XLS for Python 默认支持中文无需额外配置。资源释放使用Close()和Dispose()方法释放 PDF 和 Excel 对象避免长时间运行导致内存泄漏。五、总结基于Spire系列库能够快速实现 PDF 表格数据的提取与格式转换相比传统的手动操作效率提升数十倍。该方案适用于各类场景如批量提取财务报表、科研数据、政务文件中的 PDF 表格为数据自动化处理提供了可靠的技术支撑。