最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實現(xiàn)快速提取PDF中的表格

 更新時間:2026年06月01日 11:15:17   作者:秋天的落葉鋪滿小路  
在數(shù)據分析工作中,我們經常遇到需要從 PDF 文件中提取表格數(shù)據的場景,本文將手把手教你使用?Spire.PDF for Python?庫,快速準確地識別并提取 PDF 中的表格,并將數(shù)據保存為 CSV、Excel 等常用格式

在數(shù)據分析工作中,我們經常遇到需要從 PDF 文件中提取表格數(shù)據的場景。然而,直接復制 PDF 中的表格往往會導致格式混亂、數(shù)據錯位。本文將手把手教你使用 Spire.PDF for Python 庫,快速準確地識別并提取 PDF 中的表格,并將數(shù)據保存為 CSV、Excel 等常用格式。

一、準備工作:安裝必要的庫

首先需要安裝 Spire.PDF 庫。打開終端或命令行,執(zhí)行以下命令:

pip install Spire.PDF

如果你計劃將提取的數(shù)據導出為 Excel 格式,建議同時安裝 pandas 和 openpyxl:

pip install pandas openpyxl

二、核心代碼:提取 PDF 中的表格

下面的代碼演示了如何從 PDF 的第一頁提取表格,并逐行打印單元格內容:

from spire.pdf import PdfDocument, PdfTableExtractor

# 1. 加載 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")

# 2. 創(chuàng)建表格提取器
table_extractor = PdfTableExtractor(pdf)

# 3. 提取第一頁的所有表格
tables = table_extractor.ExtractTable(0)

# 4. 遍歷每個表格
for table in tables:
    row_count = table.GetRowCount()
    column_count = table.GetColumnCount()

    # 逐行提取單元格內容
    for i in range(row_count):
        row_data = []
        for j in range(column_count):
            cell_text = table.GetText(i, j)
            row_data.append(cell_text)
        print(row_data)

代碼說明

方法作用
LoadFromFile()加載指定路徑的 PDF 文件
PdfTableExtractor()創(chuàng)建表格提取器實例
ExtractTable(頁碼)提取指定頁面的所有表格,頁碼從 0 開始
GetRowCount() / GetColumnCount()獲取表格的行數(shù)和列數(shù)
GetText(行, 列)獲取指定單元格的文本內容

三、進階處理:多頁 PDF 批量提取

如果 PDF 包含多個頁面,可以使用循環(huán)批量提取所有表格:

from spire.pdf import PdfDocument, PdfTableExtractor

pdf = PdfDocument()
pdf.LoadFromFile("multi_page_report.pdf")

# 遍歷所有頁面
for page_index in range(pdf.Pages.Count):
    extractor = PdfTableExtractor(pdf)
    tables = extractor.ExtractTable(page_index)

    print(f"\n=== 第 {page_index + 1} 頁 共找到 {len(tables)} 個表格 ===")

    for t, table in enumerate(tables):
        print(f"--- 表格 {t+1} ---")
        rows = table.GetRowCount()
        cols = table.GetColumnCount()

        for i in range(rows):
            row = [table.GetText(i, j) for j in range(cols)]
            print(row)

四、導出數(shù)據:保存為 CSV 或 Excel 文件

提取的表格數(shù)據可以方便地轉換為其他格式。以下示例將數(shù)據保存為 CSV 文件:

import csv
from spire.pdf import PdfDocument, PdfTableExtractor

pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")

extractor = PdfTableExtractor(pdf)
tables = extractor.ExtractTable(0)

if tables:
    table = tables[0]
    rows = table.GetRowCount()
    cols = table.GetColumnCount()

    # 收集所有數(shù)據
    data = []
    for i in range(rows):
        row_data = [table.GetText(i, j) for j in range(cols)]
        data.append(row_data)

    # 寫入 CSV 文件
    with open("output.csv", "w", newline="", encoding="utf-8") as f:
        writer = csv.writer(f)
        writer.writerows(data)

    print(f"成功導出 {rows} 行 × {cols} 列 數(shù)據到 output.csv")

若想導出為 Excel 文件,可借助 pandas:

import pandas as pd
# 假設 data 是上面提取的二維列表
df = pd.DataFrame(data[1:], columns=data[0])  # 首行作為列標題
df.to_excel("output.xlsx", index=False)
print("數(shù)據已保存為 output.xlsx")

五、常見問題與技巧

  1. 表格識別不完整? 檢查 PDF 中的表格是否有清晰的邊框,掃描件或圖片型 PDF 需要使用 OCR 技術,Spire.PDF 主要適用于文本型 PDF。
  2. 合并單元格處理 :Spire.PDF 會自動處理合并單元格,GetText() 會返回合并區(qū)域左上角單元格的內容,其他位置返回空字符串。
  3. 性能優(yōu)化 :處理大型 PDF 時,建議逐頁提取并即時保存,避免一次性加載全部表格到內存。

通過以上步驟,你已經掌握了使用 Python 提取 PDF 表格的完整流程。這個方案可以輕松集成到自動化數(shù)據處理流水線中,大幅提升工作效率。

到此這篇關于使用Python實現(xiàn)快速提取PDF中的表格的文章就介紹到這了,更多相關Python提取PDF表格內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用python和yolo方法實現(xiàn)yolo標簽自動標注

    使用python和yolo方法實現(xiàn)yolo標簽自動標注

    本文介紹了基于YOLOv10的自動標注方法,從初階的固定標注到高階的基于YOLO檢測結果的自動標注,兩者相比,高階方法顯著提高了標注的準確性,并減少了人工操作的時間,</P><P>
    2024-11-11
  • 深入理解python多線程編程

    深入理解python多線程編程

    進程是資源分配的最小單位,他是操作系統(tǒng)進行資源分配和調度運行的基本單位。通俗理解:一個正在運行的一個程序就是一個進程,本文重點給大家介紹python多線程編程的相關知識,感興趣的朋友一起看看吧
    2021-04-04
  • python 將列表中的字符串連接成一個長路徑的方法

    python 將列表中的字符串連接成一個長路徑的方法

    今天小編就為大家分享一篇python 將列表中的字符串連接成一個長路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python3非對稱加密算法RSA實例詳解

    Python3非對稱加密算法RSA實例詳解

    這篇文章主要介紹了Python3非對稱加密算法RSA,結合實例形式分析了Python3 RSA加密相關模塊安裝及使用操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python離線安裝第三方庫詳細操作流程

    Python離線安裝第三方庫詳細操作流程

    在使用Python開發(fā)過程中,我們經常需要使用各種第三方庫來擴展Python的功能,這篇文章主要給大家介紹了關于Python離線安裝第三方庫的相關資料,需要的朋友可以參考下
    2023-11-11
  • python函數(shù)運行內存時間等性能檢測工具

    python函數(shù)運行內存時間等性能檢測工具

    這篇文章主要為大家介紹了python函數(shù)運行內存時間等性能檢測工具,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 基于pycharm 項目和項目文件命名規(guī)則的介紹

    基于pycharm 項目和項目文件命名規(guī)則的介紹

    這篇文章主要介紹了基于pycharm 項目和項目文件命名規(guī)則的介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • python實現(xiàn)屏保程序(適用于背單詞)

    python實現(xiàn)屏保程序(適用于背單詞)

    這篇文章主要為大家詳細介紹了python實現(xiàn)屏保程序,適用于背單詞,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python2與Python3的區(qū)別點整理

    Python2與Python3的區(qū)別點整理

    在本篇文章里小編給大家整理的是關于Python2與Python3的區(qū)別點整理內容,需要的朋友們可以參考下。
    2019-12-12
  • 使用matplotlib在Python中繪制數(shù)據的詳細教程

    使用matplotlib在Python中繪制數(shù)據的詳細教程

    Python 在處理數(shù)據方面非常出色,通常,數(shù)據集 會包括多個變量和許多實例,這使得很難理解數(shù)據的情況,數(shù)據可視化是幫助您識別數(shù)據模式的一種有用方式,本教程將描述如何使用 matplotlib 在 Python 中繪制數(shù)據,需要的朋友可以參考下
    2024-10-10

最新評論

安泽县| 股票| 韶关市| 安吉县| 闵行区| 郧西县| 囊谦县| 南乐县| 平武县| 承德县| 临漳县| 丁青县| 平安县| 滦平县| 乌鲁木齐市| 宽城| 定陶县| 高唐县| 阳新县| 宜春市| 长汀县| 阜南县| 育儿| 西和县| 南乐县| 南和县| 甘孜县| 沭阳县| 天峻县| 无为县| 买车| 信宜市| 邹城市| 秭归县| 无极县| 祥云县| 微山县| 图片| 永修县| 峨眉山市| 扶沟县|