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

Python實(shí)現(xiàn)批量提取Word文檔表格數(shù)據(jù)

 更新時(shí)間:2024年03月12日 07:56:23   作者:Eiceblue  
在大數(shù)據(jù)處理與信息抽取領(lǐng)域中,Word文檔是各類機(jī)構(gòu)和個(gè)人普遍采用的一種信息存儲(chǔ)格式,本文將介紹如何使用Python實(shí)現(xiàn)對(duì)Word文檔中表格的提取,感興趣的可以了解下

在大數(shù)據(jù)處理與信息抽取領(lǐng)域中,Word文檔是各類機(jī)構(gòu)和個(gè)人普遍采用的一種信息存儲(chǔ)格式,其中包含了大量的結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),如各類報(bào)告、調(diào)查問卷結(jié)果、項(xiàng)目計(jì)劃等。這些文檔中的表格往往承載了關(guān)鍵的數(shù)據(jù)信息,如統(tǒng)計(jì)數(shù)據(jù)、項(xiàng)目進(jìn)度、研究成果等。然而,手動(dòng)從大量的Word文檔中逐一摘取并整理這些表格不僅耗時(shí)費(fèi)力,且易出錯(cuò),無法滿足高效、準(zhǔn)確的數(shù)據(jù)利用需求。因此,利用編程實(shí)現(xiàn)批量提取Word文檔中的表格成為了一種必要且高效的解決方案。Python作為一種功能強(qiáng)大、易學(xué)易用的編程語言,可以有效地實(shí)現(xiàn)這一目標(biāo),極大地提升數(shù)據(jù)采集和預(yù)處理的工作效率,同時(shí)也為后續(xù)的數(shù)據(jù)分析和應(yīng)用提供強(qiáng)有力的支持。本文將介紹如何使用Python實(shí)現(xiàn)對(duì)Word文檔中表格的提取。

本文所使用的方法需要用到Spire.Doc for Python,可從官網(wǎng)獲取。如果是將表格保存到Excel工作表,則還需要用到Spire.XLS for Python。

提取Word文檔表格并保存為Excel工作表

讀取Word文檔中的表格并寫入Excel工作簿需要同時(shí)用到這兩個(gè)庫。以下是操作步驟:

創(chuàng)建 Document 和 Workbook 對(duì)象。

使用 Document 類的 LoadFromFile() 方法載入指定路徑下的 Word 文檔。

清除 Workbook 中的所有工作表。

遍歷加載的 Word 文檔中的所有節(jié)(Sections)。

在每個(gè)節(jié)中,遍歷其包含的所有表格(Tables)。

對(duì)于每一個(gè)表格,創(chuàng)建一個(gè)新的 Excel 工作表,并根據(jù)表格索引為其命名。

遍歷表格中的每一行(Rows),并獲取當(dāng)前行對(duì)象。

再次遍歷該行中的所有單元格(Cells),獲取單元格對(duì)象。

對(duì)于每個(gè)單元格,將其包含的段落內(nèi)容合并為一個(gè)字符串(cellText)。

使用 Workbook 的工作表對(duì)象的 SetCellValue() 方法將合并后的單元格文本內(nèi)容寫入到對(duì)應(yīng)的工作表中。

完成所有表格數(shù)據(jù)的寫入后,使用 Workbook 的 SaveToFile() 方法將 Excel 數(shù)據(jù)保存到指定路徑。

代碼示例:

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

# 創(chuàng)建Document對(duì)象
doc = Document()

# 載入Word文檔
doc.LoadFromFile("示例.docx")

# 創(chuàng)建Workbook對(duì)象
wb = Workbook()
wb.Worksheets.Clear()

# 遍歷文檔中的節(jié)
for i in range(doc.Sections.Count):
    # 獲取一個(gè)節(jié)
    section = doc.Sections.get_Item(i)
    # 遍歷節(jié)中的表格
    for j in range(section.Tables.Count):
        # 獲取一個(gè)表格
        table = section.Tables.get_Item(j)
        # 創(chuàng)建一個(gè)工作表
        ws = wb.Worksheets.Add(f"表 {(j + 1)}")
        # 將表格數(shù)據(jù)寫入工作表
        for row in range(table.Rows.Count):
            # 獲取一行
            tableRow = table.Rows.get_Item(row)
            # 遍歷一行中的單元格
            for cell in range(tableRow.Cells.Count):
                # 獲取一個(gè)單元格
                tableCell = tableRow.Cells.get_Item(cell)
                # 獲取單元格的內(nèi)容
                cellText = ""
                for paragraph in range(tableCell.Paragraphs.Count):
                    paragraph = tableCell.Paragraphs.get_Item(paragraph)
                    cellText = cellText + paragraph.Text
                # 將單元格的內(nèi)容寫入工作表
                ws.SetCellValue(row + 1, cell + 1, cellText)

wb.SaveToFile("output/Word表格寫入Excel.xlsx", FileFormat.Version2016)
doc.Close()
wb.Dispose()

提取結(jié)果

提取Word文檔表格并保存為CSV文件

CSV文件以文本的文件的形式儲(chǔ)存表格數(shù)據(jù),因此,我們可以直接使用Spire.Doc for Python提取Word文檔中的表格數(shù)據(jù)并寫入到CSV文件。以下是操作步驟:

創(chuàng)建 Document 對(duì)象。

使用 Document 類的 LoadFromFile() 方法載入指定路徑下的 Word 文檔。

遍歷載入的 Word 文檔中的所有節(jié)(Sections)。

在每個(gè)節(jié)內(nèi),進(jìn)一步遍歷其包含的所有表格(Tables)。

對(duì)于每個(gè)表格,生成對(duì)應(yīng)的 CSV 文件名,并以寫模式打開這個(gè)文件,設(shè)置編碼為 UTF-8 并開啟新行模式。

創(chuàng)建 csv.writer 對(duì)象用于寫入 CSV 文件內(nèi)容。

根據(jù)表格的列數(shù)動(dòng)態(tài)生成 CSV 文件的標(biāo)題行(列名),并用 writerow() 方法寫入到CSV文件中。

遍歷當(dāng)前表格的每一行(Rows),獲取當(dāng)前行對(duì)象。

對(duì)于每一行中的每個(gè)單元格,只提取第一個(gè)段落的文本內(nèi)容,形成一行的數(shù)據(jù)列表。

使用 csv.writer 對(duì)象的 writerow() 方法將這一行的數(shù)據(jù)列表寫入到對(duì)應(yīng)的 CSV 文件中。

在完成一個(gè)表格的所有數(shù)據(jù)寫入后,關(guān)閉已打開的 CSV 文件。

繼續(xù)處理下一個(gè)表格,直至遍歷完所有表格。

import csv
from spire.doc import *

# 創(chuàng)建Document對(duì)象
doc = Document()

# 載入Word文檔
doc.LoadFromFile("示例.docx")

# 遍歷文檔中的節(jié)
for i in range(doc.Sections.Count):
    # 獲取一個(gè)節(jié)
    section = doc.Sections.get_Item(i)
    # 遍歷節(jié)中的表格
    for j in range(section.Tables.Count):
        # 獲取一個(gè)表格
        table = section.Tables.get_Item(j)
        
        # 創(chuàng)建CSV文件名并打開文件
        csv_file_name = f"output/CSV/表_{(j + 1)}.csv"
        with open(csv_file_name, 'w', newline='', encoding='utf-8') as csvfile:
            writer = csv.writer(csvfile)
       
            # 遍歷表格中的每一行
            for row in range(table.Rows.Count):
                # 獲取一行
                tableRow = table.Rows.get_Item(row)
                
                # 讀取一行中的單元格內(nèi)容,只取每個(gè)單元格的第一個(gè)段落
                row_data = [tableRow.Cells.get_Item(cell).Paragraphs[0].Text for cell in range(tableRow.Cells.Count)]
                
                # 將單元格內(nèi)容寫入CSV文件
                writer.writerow(row_data)

doc.Close()

提取結(jié)果:

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

相關(guān)文章

  • 使用Python實(shí)現(xiàn)PDF文檔自動(dòng)化編輯與圖表繪制的全指南

    使用Python實(shí)現(xiàn)PDF文檔自動(dòng)化編輯與圖表繪制的全指南

    PDF文檔處理在日常工作中太常見了,手動(dòng)處理費(fèi)時(shí)費(fèi)力還容易出錯(cuò),用Python來搞定這些重復(fù)性工作非常高效,今天我就帶大家用Python來實(shí)現(xiàn)PDF文檔的自動(dòng)化編輯和數(shù)據(jù)可視化,包括PDF的讀取、修改、合并,以及用數(shù)據(jù)繪制漂亮的圖表,需要的朋友可以參考下
    2025-08-08
  • Pandas 多層索引操作的實(shí)現(xiàn)

    Pandas 多層索引操作的實(shí)現(xiàn)

    本文主要介紹了Pandas 多層索引操作的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Python利用flask操作Redis的方法詳解

    Python利用flask操作Redis的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Python如何利用flask操作Redis,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2023-02-02
  • python實(shí)現(xiàn)分析apache和nginx日志文件并輸出訪客ip列表的方法

    python實(shí)現(xiàn)分析apache和nginx日志文件并輸出訪客ip列表的方法

    這篇文章主要介紹了python實(shí)現(xiàn)分析apache和nginx日志文件并輸出訪客ip列表的方法,涉及Python操作日志文件的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 教你利用Python玩轉(zhuǎn)histogram直方圖的五種方法

    教你利用Python玩轉(zhuǎn)histogram直方圖的五種方法

    這篇文章主要給大家介紹了關(guān)于如何利用Python玩轉(zhuǎn)histogram直方圖的五種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 如何將python腳本打包為exe可執(zhí)行文件

    如何將python腳本打包為exe可執(zhí)行文件

    這篇文章主要介紹了如何將python腳本打包為exe可執(zhí)行文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 解決使用openpyxl時(shí)遇到的坑

    解決使用openpyxl時(shí)遇到的坑

    這篇文章主要介紹了解決使用openpyxl時(shí)遇到的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 通過代碼實(shí)例展示Python中列表生成式的用法

    通過代碼實(shí)例展示Python中列表生成式的用法

    這篇文章主要介紹了通過代碼實(shí)例展示Python中列表生成式的用法,包括找出質(zhì)數(shù)、算平方數(shù)等基本用法,需要的朋友可以參考下
    2015-03-03
  • Python利用ElementTree實(shí)現(xiàn)快速解析XML文件

    Python利用ElementTree實(shí)現(xiàn)快速解析XML文件

    ElementTree 是 Python 標(biāo)準(zhǔn)庫的一部分,而且是 Python 標(biāo)準(zhǔn)庫中用于解析和操作 XML 數(shù)據(jù)的模塊,下面小編就來和大家詳細(xì)講講如何通過ElementTree實(shí)現(xiàn)快速解析XML吧
    2025-04-04
  • Python繪制折線圖可視化神器pyecharts案例

    Python繪制折線圖可視化神器pyecharts案例

    這篇文章主要介紹了Python繪制折線圖可視化神器pyecharts,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07

最新評(píng)論

德令哈市| 当涂县| 昭平县| 濉溪县| 大英县| 南汇区| 察雅县| 建德市| 年辖:市辖区| 仙桃市| 澎湖县| 乡宁县| 盘山县| 故城县| 舞阳县| 武隆县| 紫金县| 汉寿县| 汤阴县| 湘潭市| 图们市| 南和县| 德格县| 荆州市| 进贤县| 历史| 理塘县| 益阳市| 科技| 桑日县| 商丘市| 贵溪市| 清镇市| 土默特右旗| 长寿区| 泊头市| 宜丰县| 怀化市| 伊吾县| 霞浦县| 古蔺县|