2024年最新高效AI办公自动化:ChatGPT批量提取PDF表格到Excel完全指南
处理PDF文件时,经常遇到一个头疼的问题:里面有很多表格,想批量提取出来,怎么办?下面这张图就是一个典型的场景——你手里有一份研究报告,需要把其中几页的表格数据一股脑儿拽出来,存成Excel。

不妨试试让ChatGPT帮你写个Python脚本。直接给它这样的提示词:
你是一个Python编程专家,任务是提取pdf文件中的表格,具体步骤如下:
读取PDF文件:"F:AI自媒体内容AI炒股已经阅读20240612-海通国际-中国互联网:“人工智能+”引爆新质生产力革命.pdf"
用camelot-py库提取63页到68页中所有的表格内容,
表格内容保存到excel文件中,excel文件保存在F盘,文件名为:AI融资2024.xlsx
注意:每一步都要输出信息到屏幕上

ChatGPT会给出类似下面的回复。不过说实话,PDF表格提取确实是个老大难问题——PDF本身不是为结构化数据设计的,表格的格式和排版稍有复杂,提取出来的数据就容易乱成一锅粥。要解决这个问题,专业工具必须上场。推荐两个库:tabula-py和camelot-py,它们专为从PDF中提取表格而生,能较好地保留原始排版信息。
下面重点说说用camelot-py的具体做法,操作起来其实不复杂,分几步走:
装好camelot-py
开始前先安装这个库,它依赖Ghostscript,Windows用户需要去Ghostscript官网下载安装包。然后执行:pip install camelot-py写代码提取表格
下面是一段可以直接跑的示例代码。注意替换文件路径和页码范围,你就能把指定页面的所有表格一股脑儿扔进Excel:import camelot import pandas as pd # 设置文件路径 pdf_file_path = r"F:AI自媒体内容AI炒股已经阅读20240612-海通国际-中国互联网:“人工智能+”引爆新质生产力革命.pdf" excel_output_path = r"F:AI融资2024.xlsx" pages = "63-68" # 提取表格 try: tables = camelot.read_pdf(pdf_file_path, pages=pages, fla vor='stream') print(f"在第 {pages} 页中检测到 {len(tables)} 个表格。") except Exception as e: print(f"无法提取表格: {e}") exit() # 保存到Excel with pd.ExcelWriter(excel_output_path, engine='openpyxl') as writer: for i, table in enumerate(tables): df = table.df sheet_name = f"Table_{i+1}" df.to_excel(writer, sheet_name=sheet_name, index=False, header=False) print(f"表格 {i+1} 已保存到 Excel 的 {sheet_name} 工作表中。") print(f"所有表格内容已保存到 Excel 文件: {excel_output_path}")代码里的小门道
camelot.read_pdf()是核心方法,fla vor='stream'适用于行列边界比较清晰的表格;如果表格有明线网格,可以换成fla vor='lattice',精度更高。pages="63-68"指定页码范围。每个表格会被单独存为一个工作表(Sheet),方便后续处理。每一步都加了print,跑的时候能实时看到进展,心里有底。
几点注意事项
表格检测不是100%完美。如果遇到复杂格式(比如合并单元格、缺失边框),camelot可能漏检或数据错位。这时候可以调调参数,比如line_scale、edge_tol等,或者试试fla vor='lattice'。如果PDF里图形、水印太多,手动调整策略或换更专业的工具可能是唯一出路。
跑完脚本后,一定打开Excel检查一下数据是否准确、完整。毕竟表格提取这事,机器再强也难免有意外,人工复核才是最后的保险。

程序运行结果,就看你的PDF实际情况了。如果顺利的话,Excel里会整整齐齐列出所有表格,直接就能用。