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

Python高效提取與自動化處理Word表格的完整指南

 更新時間:2026年01月12日 14:21:30   作者:LSTM97  
在日常辦公和自動化處理場景中,Word 文檔(DOC/DOCX)依然是最常見的數(shù)據(jù)載體之一,本文將介紹如何使用Spire.Doc for Python從 Word 文檔中逐個提取表格,并將表格內(nèi)容導(dǎo)出為文本文件,有需要的可以了解下

在日常辦公和自動化處理場景中,Word 文檔(DOC/DOCX)依然是最常見的數(shù)據(jù)載體之一。許多業(yè)務(wù)數(shù)據(jù)、統(tǒng)計報表、合同條款或配置信息,往往以表格的形式存在于 Word 文檔中。當(dāng)我們需要對這些表格數(shù)據(jù)進行進一步處理(如導(dǎo)入數(shù)據(jù)庫、轉(zhuǎn)換為 Excel、生成報表或進行數(shù)據(jù)分析)時,手動復(fù)制粘貼顯然效率低下,也容易出錯。

借助 Python 以及專業(yè)的文檔處理庫,我們可以實現(xiàn) 自動化提取 Word 表格內(nèi)容 ,并將其保存為結(jié)構(gòu)化文本文件或其他格式。本文將詳細(xì)介紹如何使用 Spire.Doc for Python ,從 Word 文檔中逐個提取表格,并將表格內(nèi)容導(dǎo)出為文本文件。

為什么選擇 Spire.Doc for Python

在眾多 Python 文檔處理方案中,Spire.Doc for Python 是一款面向開發(fā)者的專業(yè) Word 文檔處理庫,具備以下顯著優(yōu)勢:

  • 無需依賴 Microsoft Word :純 Python 實現(xiàn),適合服務(wù)器和自動化環(huán)境
  • 支持完整 Word 結(jié)構(gòu) :段落、表格、頁眉頁腳、樣式等均可訪問
  • API 設(shè)計清晰 :面向?qū)ο?,邏輯與 Word 文檔結(jié)構(gòu)高度一致
  • 穩(wěn)定可靠 :適合批量處理與企業(yè)級應(yīng)用場景

在提取表格這種涉及文檔層級遍歷的任務(wù)中,Spire.Doc 提供了非常直觀的對象模型,使代碼既清晰又易于維護。

實現(xiàn)思路概述

從 Word 中提取表格,本質(zhì)上是對 Word 文檔結(jié)構(gòu)的逐層遍歷。整體流程如下:

  • 加載 Word 文檔
  • 遍歷文檔中的所有 Section(節(jié))
  • 在每個 Section 中獲取所有表格(Table)
  • 遍歷表格中的行(Row)和單元格(Cell)
  • 讀取單元格內(nèi)的段落文本
  • 按行列結(jié)構(gòu)拼接表格數(shù)據(jù)
  • 將每個表格保存為獨立的文本文件

這種方式不僅能夠完整保留表格結(jié)構(gòu),也便于后續(xù)擴展為 CSV、Excel 或數(shù)據(jù)庫導(dǎo)入邏輯。

準(zhǔn)備工作

在開始之前,請確保你的環(huán)境已準(zhǔn)備就緒:

  • • Python 3.x
  • • 已安裝 spire.doc(Spire.Doc for Python)

安裝方式示例:

pip install spire-doc

安裝完成后,即可在 Python 項目中直接引用相關(guān)模塊。

示例代碼:從 Word 提取表格并保存為文本文件

下面是完整的示例代碼,用于從 Word 文檔中提取所有表格,并將每個表格保存為一個 .txt 文件。

from spire.doc import *
from spire.doc.common import *

# 創(chuàng)建 Document 實例
doc = Document()

# 加載 Word 文檔
doc.LoadFromFile("Input.docx") 

# 遍歷文檔中的所有節(jié)(Section)
for s in range(doc.Sections.Count):
    # 獲取當(dāng)前節(jié)
    section = doc.Sections.get_Item(s)
    # 獲取當(dāng)前節(jié)中的所有表格
    tables = section.Tables
    # 遍歷當(dāng)前節(jié)中的表格
    for i in range(0, tables.Count):
        # 獲取表格對象
        table = tables.get_Item(i)
        # 用于存儲當(dāng)前表格數(shù)據(jù)的字符串
        tableData = ''
        # 遍歷表格中的所有行
        for j in range(0, table.Rows.Count):
            # 遍歷當(dāng)前行中的所有單元格
            for k in range(0, table.Rows.get_Item(j).Cells.Count):
                # 獲取單元格對象
                cell = table.Rows.get_Item(j).Cells.get_Item(k)
                # 用于存儲單元格中的文本內(nèi)容
                cellText = ''
                # 遍歷單元格中的所有段落
                for para in range(cell.Paragraphs.Count):
                    paragraphText = cell.Paragraphs.get_Item(para).Text
                    cellText += (paragraphText + ' ')
                # 將單元格文本追加到表格數(shù)據(jù)字符串中
                tableData += cellText
                # 如果不是最后一個單元格,則添加制表符作為列分隔符
                if k < table.Rows.get_Item(j).Cells.Count - 1:
                    tableData += '\t'
            # 當(dāng)前行結(jié)束后,添加換行符
            tableData += '\n'
    
        # 將表格數(shù)據(jù)保存為文本文件
        with open(f'output/Tables/WordTable_{s+1}_{i+1}.txt', 'w', encoding='utf-8') as f:
            f.write(tableData)

# 關(guān)閉文檔,釋放資源
doc.Close()

代碼詳解

下面我們對核心代碼邏輯進行逐步解析,幫助你更好地理解其工作原理。

1. 加載 Word 文檔

doc = Document()
doc.LoadFromFile("Input.docx")

這里創(chuàng)建了一個 Document 實例,并加載指定路徑下的 Word 文件。Document 是 Spire.Doc 中表示整個 Word 文檔的核心對象。

2. 遍歷文檔中的 Section

for s in range(doc.Sections.Count):
    section = doc.Sections.get_Item(s)

在 Word 中,文檔可能由多個 Section 組成(例如分頁、不同頁眉頁腳設(shè)置)。為了不遺漏任何表格,我們需要遍歷所有 Section。

3. 獲取并遍歷表格

tables = section.Tables
for i in range(0, tables.Count):
    table = tables.get_Item(i)

每個 Section 都可能包含多個表格。通過 section.Tables 可以直接獲取該節(jié)中的所有表格對象。

4. 遍歷行和單元格

for j in range(0, table.Rows.Count):
    for k in range(0, table.Rows.get_Item(j).Cells.Count):
        cell = table.Rows.get_Item(j).Cells.get_Item(k)

表格由行和單元格組成。這里采用雙層循環(huán),確保按“行 → 列”的順序讀取數(shù)據(jù),從而保持原有表格結(jié)構(gòu)。

5. 讀取單元格中的段落文本

for para in range(cell.Paragraphs.Count):
    paragraphText = cell.Paragraphs.get_Item(para).Text
    cellText += (paragraphText + ' ')

一個單元格中可能包含多個段落(例如手動換行)。因此,需要遍歷 cell.Paragraphs,并將所有段落文本拼接起來,確保內(nèi)容完整。

6. 拼接表格數(shù)據(jù)

tableData += cellText
tableData += '\t'
tableData += '\n'
  • • 使用 制表符(\t) 分隔列
  • • 使用 換行符(\n) 分隔行

這種格式非常適合后續(xù)轉(zhuǎn)換為 Excel、CSV,或直接導(dǎo)入數(shù)據(jù)庫。

7. 保存為文本文件

with open(f'output/Tables/WordTable_{s+1}_{i+1}.txt', 'w', encoding='utf-8') as f:
    f.write(tableData)

每個表格都會被單獨保存為一個文本文件,文件名中包含 Section 和 Table 的索引,便于區(qū)分來源。

應(yīng)用場景拓展

基于本文示例代碼,你可以輕松擴展到更多實際應(yīng)用場景,例如:

  • 將提取的表格數(shù)據(jù)轉(zhuǎn)換為 CSV 或 Excel
  • 自動解析 Word 報表并導(dǎo)入 數(shù)據(jù)庫系統(tǒng)
  • 批量處理合同或業(yè)務(wù)文檔中的表格信息
  • 與數(shù)據(jù)分析或 BI 工具進行對接

Spire.Doc for Python 提供的豐富 API,使這些擴展變得非常自然。

總結(jié)

本文介紹了如何使用 Spire.Doc for Python 從 Word 文檔中自動提取表格內(nèi)容,并將其保存為文本文件。通過對 Word 文檔結(jié)構(gòu)(Section、Table、Row、Cell、Paragraph)的逐層遍歷,我們能夠完整、準(zhǔn)確地獲取表格數(shù)據(jù),并為后續(xù)的數(shù)據(jù)處理和自動化流程打下堅實基礎(chǔ)。

如果你正在尋找一種 穩(wěn)定、高效、無需依賴 Office 環(huán)境 的 Word 表格提取方案,那么 Spire.Doc for Python 無疑是一個值得考慮的選擇。

以上就是Python高效提取與自動化處理Word表格的完整指南的詳細(xì)內(nèi)容,更多關(guān)于Python Word處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • PyCharm代碼提示忽略大小寫設(shè)置方法

    PyCharm代碼提示忽略大小寫設(shè)置方法

    今天小編就為大家分享一篇PyCharm代碼提示忽略大小寫設(shè)置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 一文詳解Python是如何處理SSH的

    一文詳解Python是如何處理SSH的

    SSH是一種網(wǎng)絡(luò)安全協(xié)議,旨在通過加密和認(rèn)證機制實現(xiàn)安全的訪問,遠(yuǎn)程登錄和文件傳輸?shù)葮I(yè)務(wù),下面小編就來和大家聊聊Python是如何處理SSH的吧
    2025-02-02
  • 自定義PyCharm快捷鍵的設(shè)置方式

    自定義PyCharm快捷鍵的設(shè)置方式

    這篇文章主要介紹了自定義PyCharm快捷鍵的設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python實現(xiàn)計算倒數(shù)的方法

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

    這篇文章主要介紹了python實現(xiàn)計算倒數(shù)的方法,涉及Python針對數(shù)學(xué)運算操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • 計算機二級python學(xué)習(xí)教程(2) python語言基本語法元素

    計算機二級python學(xué)習(xí)教程(2) python語言基本語法元素

    這篇文章主要為大家詳細(xì)介紹了計算機二級python學(xué)習(xí)教程的第2篇,Python語言基本語法元素,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 用python寫PDF轉(zhuǎn)換器的實現(xiàn)

    用python寫PDF轉(zhuǎn)換器的實現(xiàn)

    這篇文章主要介紹了用python寫PDF轉(zhuǎn)換器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python FTP文件定時自動下載實現(xiàn)過程解析

    Python FTP文件定時自動下載實現(xiàn)過程解析

    這篇文章主要介紹了Python FTP文件定時自動下載實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 詳解PyCharm使用pyQT5進行GUI開發(fā)的基本流程

    詳解PyCharm使用pyQT5進行GUI開發(fā)的基本流程

    本文主要介紹了PyCharm使用pyQT5進行GUI開發(fā)的基本流程,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Python pyinotify日志監(jiān)控系統(tǒng)處理日志的方法

    Python pyinotify日志監(jiān)控系統(tǒng)處理日志的方法

    這篇文章主要介紹了Python pyinotify日志監(jiān)控系統(tǒng)處理日志的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 使用rst2pdf實現(xiàn)將sphinx生成PDF

    使用rst2pdf實現(xiàn)將sphinx生成PDF

    這篇文章主要介紹了使用rst2pdf實現(xiàn)將sphinx生成PDF的相關(guān)資料,以及使用過程用遇到的錯誤的處理方法,非常的全面,需要的朋友可以參考下
    2016-06-06

最新評論

醴陵市| 德令哈市| 孝义市| 福安市| 舟曲县| 榆树市| 南和县| 伊通| 哈密市| 安康市| 轮台县| 黔西县| 即墨市| 河曲县| 渭南市| 巴塘县| 宜黄县| 元江| 砚山县| 广元市| 会昌县| 卢湾区| 固原市| 盱眙县| 定边县| 鹰潭市| 潼关县| 西乌珠穆沁旗| 西平县| 寿阳县| 罗山县| 山东| 鄂州市| 基隆市| 抚松县| 龙门县| 隆德县| 辽中县| 宁津县| 错那县| 宣武区|