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

Python實(shí)現(xiàn)精準(zhǔn)提取Word文檔中的文本與表格

 更新時(shí)間:2026年06月09日 08:18:57   作者:秋天的落葉鋪滿小路  
在數(shù)據(jù)處理任務(wù)中,從 Word 文檔中提取結(jié)構(gòu)化內(nèi)容(尤其是文本和表格)是一項(xiàng)高頻需求,本文將帶您一步步實(shí)現(xiàn) Word 文本提?。ú懭?nbsp;TXT 文件)以及表格數(shù)據(jù)的自動(dòng)導(dǎo)出,有需要的可以了解下

在數(shù)據(jù)處理任務(wù)中,從 Word 文檔中提取結(jié)構(gòu)化內(nèi)容(尤其是文本和表格)是一項(xiàng)高頻需求。Python 生態(tài)中雖然有許多庫(如 python-docx),但當(dāng)文檔排版復(fù)雜、或需要同時(shí)處理表格與正文時(shí),Spire.Doc for Python 提供了更穩(wěn)定、功能更全面的解決方案。本文將帶您一步步實(shí)現(xiàn) Word 文本提?。ú懭?TXT 文件)以及表格數(shù)據(jù)的自動(dòng)導(dǎo)出。

一、準(zhǔn)備工作:安裝與授權(quán)

Spire.Doc for Python 是一個(gè)功能強(qiáng)大的 Word 操作庫,支持 .doc / .docx 等多種格式。安裝非常簡單:

pip install spire.doc

默認(rèn)情況下,該庫會以免費(fèi)模式運(yùn)行,但處理超過 500 段落或 25 個(gè)表格時(shí)會添加評估水印。對于小型文檔或測試場景已足夠。若需生產(chǎn)環(huán)境,可申請臨時(shí)授權(quán)或購買商用許可。

二、提取全部文本并寫入 TXT 文件

原始的 GetText() 方法僅將文本打印到控制臺。在實(shí)際工作中,我們通常需要將內(nèi)容持久化保存。下面的代碼修改為讀取 Word 全文,并將其寫入指定的 .txt 文件中:

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

# 創(chuàng)建 Document 對象并加載 Word 文件
doc = Document()
doc.LoadFromFile("input.docx")

# 獲取整個(gè)文檔的純文本內(nèi)容
full_text = doc.GetText()

# 將文本寫入 txt 文件
with open("output.txt", "w", encoding="utf-8") as file:
    file.write(full_text)

doc.Close()
print("文本提取完成,已保存至 output.txt")

代碼要點(diǎn)說明 :

  • GetText() 會按閱讀順序提取段落、標(biāo)題、頁眉頁腳等所有文本內(nèi)容,但忽略圖片、圖形等元素。
  • 寫入時(shí)指定 utf-8 編碼,確保中文不出現(xiàn)亂碼。
  • 操作完成后調(diào)用 doc.Close() 釋放資源。

三、精確提取并導(dǎo)出所有表格

Word 中的表格往往承載著關(guān)鍵數(shù)據(jù)(如報(bào)表、清單)。Spire.Doc 提供了層次清晰的 API:文檔 → 節(jié)(Section) → 表格(Table) → 行 → 單元格 → 段落。以下代碼會遍歷每個(gè)節(jié)中的所有表格,將每個(gè)表格單獨(dú)保存為一個(gè) .txt 文件(以制表符分隔,便于后續(xù)導(dǎo)入 Excel):

from spire.doc import *
from spire.doc.common import *
import os
# 創(chuàng)建輸出文件夾
output_dir = "output/Tables"
os.makedirs(output_dir, exist_ok=True)
# 加載 Word 文檔
doc = Document()
doc.LoadFromFile("Sample.docx")
# 遍歷所有節(jié)
for section_idx in range(doc.Sections.Count):
    section = doc.Sections.get_Item(section_idx)
    tables = section.Tables
    for table_idx in range(tables.Count):
        table = tables.get_Item(table_idx)
        table_data = ""
        # 遍歷表格所有行和單元格
        for row_idx in range(table.Rows.Count):
            row = table.Rows.get_Item(row_idx)
            for col_idx in range(row.Cells.Count):
                cell = row.Cells.get_Item(col_idx)
                # 收集單元格內(nèi)所有段落文本
                cell_text = ""
                for para_idx in range(cell.Paragraphs.Count):
                    cell_text += cell.Paragraphs.get_Item(para_idx).Text + " "
                table_data += cell_text.strip()
                # 列之間用制表符分隔
                if col_idx < row.Cells.Count - 1:
                    table_data += "\t"
            table_data += "\n"   # 行結(jié)束
        # 保存當(dāng)前表格數(shù)據(jù)
        output_path = f"{output_dir}/WordTable_{section_idx+1}_{table_idx+1}.txt"
        with open(output_path, "w", encoding="utf-8") as f:
            f.write(table_data)
        print(f"已保存:{output_path}")
doc.Close()

代碼解析 :

  • 多層循環(huán)確保不會遺漏任何嵌套表格(注意:Spire.Doc 中表格可能嵌套在單元格內(nèi),本示例僅處理頂層表格,若需深層嵌套可遞歸處理)。
  • 單元格內(nèi)容通過遍歷其 Paragraphs 集合獲得,避免丟失換行或樣式分隔。
  • 輸出文件名按“節(jié)索引_表索引”命名,清晰可追溯。

四、整合應(yīng)用與注意事項(xiàng)

1. 性能與內(nèi)存

對于大文檔(數(shù)百頁),建議按需處理:若只需表格,可跳過文本提?。环粗嗳?。doc.Close() 必須執(zhí)行,否則可能造成句柄泄露。

2. 表格合并單元格的處理

當(dāng)表格存在跨行或跨列合并時(shí),上述代碼仍能正常提取每個(gè)單元格的文本,但輸出的純文本結(jié)構(gòu)會丟失合并關(guān)系。如需保留行列結(jié)構(gòu),可借助 Cell.ColumnSpan 和 RowSpan 屬性構(gòu)建標(biāo)記矩陣。

3. 免費(fèi)版限制

未授權(quán)的 Spire.Doc 最多可處理 10 頁文檔的前 3 頁內(nèi)容(或 500 段落)。建議先用小文檔驗(yàn)證邏輯,生產(chǎn)環(huán)境中購買授權(quán)或使用分頁讀取策略。

五、總結(jié)

通過 Spire.Doc for Python,僅需幾十行代碼即可完成 Word 文本與表格的批量抽取任務(wù)。本文提供的兩個(gè)核心函數(shù):文本寫入 TXT 與表格逐表導(dǎo)出,可直接嵌入您的數(shù)據(jù)處理流水線。結(jié)合 Python 的文件操作與后續(xù)分析(如 pandas 讀取表格 txt),您將能輕松構(gòu)建文檔解析自動(dòng)化系統(tǒng)。

如果遇到復(fù)雜文檔布局或表格合并單元格的特殊需求,Spire.Doc 還提供了 ExportToHtml、SaveToFile 等豐富接口,值得深入探索。歡迎在實(shí)際項(xiàng)目中靈活運(yùn)用,讓文檔處理不再繁瑣。

到此這篇關(guān)于Python實(shí)現(xiàn)精準(zhǔn)提取Word文檔中的文本與表格的文章就介紹到這了,更多相關(guān)Python提取Word文本與表格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3如何解決字符編碼問題詳解

    Python3如何解決字符編碼問題詳解

    字符串是一種數(shù)據(jù)類型,但是,字符串比較特殊的是還有一個(gè)編碼問題。下面這篇文章主要給大家介紹了關(guān)于Python3如何解決字符編碼問題的相關(guān)資料,文中介紹的還是相對比較詳細(xì)的,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • 如何用 Python 子進(jìn)程關(guān)閉 Excel 自動(dòng)化中的彈窗

    如何用 Python 子進(jìn)程關(guān)閉 Excel 自動(dòng)化中的彈窗

    這篇文章主要介紹了如何用 Python 子進(jìn)程關(guān)閉 Excel 自動(dòng)化中的彈窗,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-05-05
  • conda創(chuàng)建環(huán)境過程出現(xiàn)"Solving?environment:?failed"報(bào)錯(cuò)的詳細(xì)解決方法

    conda創(chuàng)建環(huán)境過程出現(xiàn)"Solving?environment:?failed"報(bào)錯(cuò)的詳細(xì)解

    很長一段時(shí)間沒用conda了,然后突然使用conda創(chuàng)建環(huán)境報(bào)錯(cuò),所以下面這篇文章主要給大家介紹了關(guān)于conda創(chuàng)建環(huán)境過程出現(xiàn)"Solving?environment:?failed"報(bào)錯(cuò)的詳細(xì)解決方法,需要的朋友可以參考下
    2022-11-11
  • 用python實(shí)現(xiàn)九九乘法表實(shí)例

    用python實(shí)現(xiàn)九九乘法表實(shí)例

    大家好,本篇文章主要講的是用python實(shí)現(xiàn)九九乘法表實(shí)例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python處理HTTP認(rèn)證的常見方法

    Python處理HTTP認(rèn)證的常見方法

    在Python中,HTTP認(rèn)證通常指的是客戶端在向服務(wù)器發(fā)送請求時(shí),需要提供某種形式的認(rèn)證信息,處理HTTP認(rèn)證通常涉及到使用requests庫,requests庫提供了簡單的方式來處理需要認(rèn)證的HTTP請求,本文給大家介紹了Python處理HTTP認(rèn)證的常見方法
    2025-03-03
  • Python單元測試框架unittest簡明使用實(shí)例

    Python單元測試框架unittest簡明使用實(shí)例

    這篇文章主要介紹了Python單元測試框架unittest簡明使用實(shí)例,本文講解了基本測試步驟、和測試實(shí)例,需要的朋友可以參考下
    2015-04-04
  • Python中多線程任務(wù)隊(duì)列中的常見錯(cuò)誤與解決方案

    Python中多線程任務(wù)隊(duì)列中的常見錯(cuò)誤與解決方案

    在使用Python開發(fā)多線程任務(wù)隊(duì)列時(shí),經(jīng)常會遇到各種錯(cuò)誤,本文基于實(shí)際開發(fā)案例,分析三個(gè)典型錯(cuò)誤,并提供詳細(xì)的解決方案,有需要的小伙伴可以了解下
    2025-05-05
  • 在cmd中查看python的安裝路徑方法

    在cmd中查看python的安裝路徑方法

    在本篇文章里小編給大家整理的是關(guān)于怎樣在cmd中查看python的安裝路徑的相關(guān)內(nèi)容,有興趣的朋友們學(xué)習(xí)參考下。
    2019-07-07
  • Python中的pack和unpack的使用

    Python中的pack和unpack的使用

    這篇文章主要介紹了Python中的pack和unpack的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用例子

    python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用例子

    這篇文章主要介紹了python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05

最新評論

固安县| 梓潼县| 冕宁县| 镇赉县| 武冈市| 罗定市| 建瓯市| 宜兰县| 饶平县| 离岛区| 屏东县| 滨州市| 米脂县| 得荣县| 全南县| 长宁县| 城市| 临洮县| 武穴市| 湟源县| 定边县| 朝阳区| 焦作市| 桃园市| 乌兰察布市| 镶黄旗| 淮安市| 雷州市| 柘荣县| 肥西县| 齐齐哈尔市| 夏津县| 安多县| 随州市| 新晃| 隆德县| 荆门市| 昭苏县| 弥勒县| 堆龙德庆县| 安龙县|