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

Python高效提取與自動(dòng)化處理Word表格的完整指南

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

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

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

為什么選擇 Spire.Doc for Python

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

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

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

實(shí)現(xiàn)思路概述

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

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

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

準(zhǔn)備工作

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

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

安裝方式示例:

pip install spire-doc

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

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

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

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

# 創(chuàng)建 Document 實(shí)例
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):
        # 獲取表格對(duì)象
        table = tables.get_Item(i)
        # 用于存儲(chǔ)當(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):
                # 獲取單元格對(duì)象
                cell = table.Rows.get_Item(j).Cells.get_Item(k)
                # 用于存儲(chǔ)單元格中的文本內(nèi)容
                cellText = ''
                # 遍歷單元格中的所有段落
                for para in range(cell.Paragraphs.Count):
                    paragraphText = cell.Paragraphs.get_Item(para).Text
                    cellText += (paragraphText + ' ')
                # 將單元格文本追加到表格數(shù)據(jù)字符串中
                tableData += cellText
                # 如果不是最后一個(gè)單元格,則添加制表符作為列分隔符
                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()

代碼詳解

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

1. 加載 Word 文檔

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

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

2. 遍歷文檔中的 Section

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

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

3. 獲取并遍歷表格

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

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

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 + ' ')

一個(gè)單元格中可能包含多個(gè)段落(例如手動(dòng)換行)。因此,需要遍歷 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)

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

應(yīng)用場(chǎng)景拓展

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

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

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

總結(jié)

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

西乌珠穆沁旗| 军事| 义乌市| 手游| 崇明县| 新余市| 南丰县| 石城县| 东港市| 邯郸市| 台南市| 筠连县| 太康县| 夏邑县| 扎赉特旗| 陵川县| 瑞丽市| 渝中区| 昌黎县| 蒲江县| 嘉祥县| 延边| 读书| 永兴县| 晋城| 广南县| 东安县| 卓资县| 武汉市| 伊吾县| 盐边县| 无极县| 肥西县| 龙川县| 永定县| 仪陇县| 长白| 嫩江县| 曲阜市| 金沙县| 澎湖县|