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

使用Python提取PDF表格到Excel文件的操作步驟

 更新時間:2024年09月25日 10:14:29   作者:Eiceblue  
在對PDF中的表格進(jìn)行再利用時,除了直接將PDF文檔轉(zhuǎn)換為Excel文件,我們還可以提取PDF文檔中的表格數(shù)據(jù)并寫入Excel工作表,本文將介紹如何使用Python提取PDF文檔中的表格并寫入Excel文件中,需要的朋友可以參考下

引言

在對PDF中的表格進(jìn)行再利用時,除了直接將PDF文檔轉(zhuǎn)換為Excel文件,我們還可以提取PDF文檔中的表格數(shù)據(jù)并寫入Excel工作表。這樣做可以避免一些不必要的文本和格式帶來的干擾,獲得更易于分析和處理的表格數(shù)據(jù),并方便進(jìn)行更多的格式設(shè)置。利用Python,我們可以實現(xiàn)對PDF表格數(shù)據(jù)的批量提取,并寫入Excel工作表中,實現(xiàn)高效的提取寫入操作。本文將介紹如何使用Python提取PDF文檔中的表格并寫入Excel文件中。

本文所使用的方法需要用到Spire.PDF for PythonSpire.XLS for Python,PyPI:pip install spire.pdf, spire.xls。

Python提取PDF表格數(shù)據(jù)寫入Excel工作表

提取表格需要用到Spire.PDF for Python中的PdfTableExtractor類。我們可以使用載入的PDF文檔創(chuàng)建一個PdfTableExtractor對象,然后使用PdfTableExtractor.ExtractTable()方法直接提取指定頁面的所有表格返回為列表。然后,我們可以使用PdfTable.GetText()來獲取表格指定單元格的文本,再使用Spire.XLS for Python新建工作表并寫入讀取的數(shù)據(jù)到工作表中的相應(yīng)位置。最后,對工作表進(jìn)行合適的格式設(shè)置,即可完成PDF表格數(shù)據(jù)到Excel工作表的提取。

以下是詳細(xì)操作步驟:

  1. 導(dǎo)入所需模塊。
  2. 創(chuàng)建 PdfDocument 對象,并使用 PdfDocument.LoadFromFile() 方法加載PDF文檔。
  3. 創(chuàng)建一個 Workbook 對象,并使用 Workbook.Worksheets.Clear() 方法清除默認(rèn)工作表。
  4. 為加載的PDF文檔創(chuàng)建一個 PdfTableExtractor 對象。
  5. 使用 PdfTableExtractor.ExtractTable() 方法提取文檔中每一頁的表格。
  6. 遍歷每個表格
    • 使用 Workbook.Worksheets.Add() 方法為每個表格在工作簿中添加一個工作表。
    • 使用 Table.GetText() 方法遍歷各行各列以獲取單元格值,并通過 Worksheet.Range[].Text 屬性將其插入工作表的相應(yīng)位置。
    • 設(shè)置單元格格式。
  7. 使用 Workbook.SaveToFile() 方法保存工作簿。
  8. 釋放資源。

代碼示例

from spire.pdf import *
from spire.xls import *

# 創(chuàng)建一個 PdfDocument 對象
pdf = PdfDocument()
# 加載一個 PDF 文檔
pdf.LoadFromFile("示例.pdf")

# 創(chuàng)建一個 Workbook 對象
workbook = Workbook()
# 清除默認(rèn)工作表
workbook.Worksheets.Clear()

# 創(chuàng)建一個 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]
            # 為該表格創(chuàng)建一個工作表
            sheet = workbook.Worksheets.Add(f"Page{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", "")
                    # 將單元格的值寫入工作表中的相應(yīng)單元格
                    sheet.Range[rowIndex + 1, colIndex + 1].Text = cellText
            # 設(shè)置表頭行樣式
            sheet.Rows.get_Item(0).Style.Font.FontName = "HarmonyOS Sans SC"
            sheet.Rows.get_Item(0).Style.Font.Size = 12
            sheet.Rows.get_Item(0).Style.Font.IsBold = True
            sheet.Rows.get_Item(0).Style.HorizontalAlignment = HorizontalAlignType.Center
            # 設(shè)置數(shù)據(jù)行樣式
            for i in range(1, sheet.Rows.Count):
                sheet.Rows.get_Item(i).Style.Font.FontName = "HarmonyOS Sans SC"
                sheet.Rows.get_Item(i).Style.Font.Size = 12
                sheet.Rows.get_Item(i).Style.HorizontalAlignment = HorizontalAlignType.Left
            # 自動調(diào)整列寬
            for j in range(1, sheet.Columns.Count):
                sheet.AutoFitColumn(j)

# 保存工作簿
workbook.SaveToFile("output/PDFTableToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()
pdf.Close()

結(jié)果

本文演示了如何使用Python提取PDF文檔表格數(shù)據(jù)到Excel文件中。

到此這篇關(guān)于使用Python提取PDF表格到Excel文件的操作步驟的文章就介紹到這了,更多相關(guān)Python提取PDF表格到Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解使用python的logging模塊在stdout輸出的兩種方法

    詳解使用python的logging模塊在stdout輸出的兩種方法

    這篇文章主要介紹了詳解使用python的logging模塊在stdout輸出的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 一文深入學(xué)習(xí)Python中的os.listdir函數(shù)

    一文深入學(xué)習(xí)Python中的os.listdir函數(shù)

    這篇文章主要給大家介紹了關(guān)于Python中os.listdir函數(shù)的相關(guān)資料,os.listdir是 Python中的一個函數(shù),它的意思是返回指定目錄下的文件和文件夾的名稱的列表,需要的朋友可以參考下
    2023-10-10
  • 解決python 出現(xiàn)unknown encoding: idna 的問題

    解決python 出現(xiàn)unknown encoding: idna 的問題

    這篇文章主要介紹了解決python出現(xiàn) unknown encoding: idna 的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python實現(xiàn)計算倒數(shù)的方法

    python實現(xiàn)計算倒數(shù)的方法

    這篇文章主要介紹了python實現(xiàn)計算倒數(shù)的方法,涉及Python針對數(shù)學(xué)運(yùn)算操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • python 阿里云oss實現(xiàn)直傳簽名與回調(diào)驗證的示例方法

    python 阿里云oss實現(xiàn)直傳簽名與回調(diào)驗證的示例方法

    這篇文章主要介紹了python 阿里云oss實現(xiàn)直傳簽名與回調(diào)驗證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python 文件數(shù)據(jù)讀寫的具體實現(xiàn)

    Python 文件數(shù)據(jù)讀寫的具體實現(xiàn)

    這篇文章主要介紹了Python 文件數(shù)據(jù)讀寫的具體實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python中的 enum 模塊源碼詳析

    Python中的 enum 模塊源碼詳析

    這篇文章主要給大家介紹了關(guān)于Python中 enum 模塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Python?find()、rfind()方法及作用

    Python?find()、rfind()方法及作用

    這篇文章主要介紹了Python?find()、rfind()方法,find方法的作用檢索是否指定的字符串,如果存在返回首次出現(xiàn)該字符串的索引,如果不存在返回-1,rfind 方法的作用和find方法作用相同,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Django ORM filter() 的運(yùn)用詳解

    Django ORM filter() 的運(yùn)用詳解

    這篇文章主要介紹了Django ORM filter() 的運(yùn)用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 深度解析Python裝飾器常見用法與進(jìn)階技巧

    深度解析Python裝飾器常見用法與進(jìn)階技巧

    Python 裝飾器(Decorator)是提升代碼可讀性與復(fù)用性的強(qiáng)大工具,本文將深入解析 Python 裝飾器的原理,常見用法,進(jìn)階技巧與最佳實踐,希望可以幫助大家寫出更具專業(yè)水準(zhǔn)的 Python 代碼
    2025-06-06

最新評論

镇远县| 饶平县| 信宜市| 湘乡市| 湛江市| 灵寿县| 通化市| 讷河市| 纳雍县| 阜新| 固阳县| 安多县| 江陵县| 清徐县| 榕江县| 桑日县| 依兰县| 郓城县| 衡阳市| 高台县| 汉中市| 专栏| 长泰县| 临泉县| 繁昌县| 隆尧县| 疏附县| 大埔县| 伊宁县| 冕宁县| 定结县| 武胜县| 高雄县| 麦盖提县| 上林县| 巴彦县| 鄂托克旗| 乡宁县| 仁寿县| 大庆市| 泸水县|