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

Python實現Word表格自動化轉為Excel

 更新時間:2026年02月06日 08:20:38   作者:用戶835629078051  
在日常工作中,我們經常需要處理各種格式的數據,本文將深入探討如何利用Python準確地將Word文檔中的表格數據提取并轉換為可編輯的Excel表格,感興趣的小伙伴可以了解下

在日常工作中,我們經常需要處理各種格式的數據。Word文檔以其靈活的排版能力,常用于報告和文檔撰寫,但當這些文檔中包含大量表格數據時,將其用于進一步的數據分析或統(tǒng)計時,手動復制粘貼到Excel無疑是一項耗時且易出錯的任務。想象一下,面對幾十甚至上百個Word文檔中的表格,這種重復性工作效率低下且令人沮喪。

幸運的是,Python作為一種強大的自動化工具,能夠完美解決這一痛點。本文將深入探討如何利用Python,結合 Spire.Doc for PythonSpire.XLS for Python 這兩個庫,高效、準確地將Word文檔中的表格數據提取并轉換為可編輯的Excel表格。通過自動化這一過程,您將能夠顯著提升工作效率,減少人為錯誤,并專注于更有價值的數據洞察。

環(huán)境準備與庫安裝

在開始之前,我們需要確保Python環(huán)境已正確配置,并安裝所需的庫。本文假設您已經安裝了Python 3.x 版本。

首先,打開您的命令行工具(如CMD、PowerShell或Terminal),然后使用pip命令安裝Spire.Doc for Python和Spire.XLS for Python。這兩個庫是本次任務的核心,Spire.Doc for Python負責讀取和解析Word文檔內容,特別是識別和提取表格數據;而Spire.XLS for Python則用于創(chuàng)建、寫入和保存Excel文件。

pip install Spire.Doc
pip install Spire.XLS

安裝完成后,您就可以在Python腳本中導入和使用它們了。

Word表格讀取與數據提取

數據提取是整個轉換過程的關鍵一步。我們將使用Spire.Doc for Python來加載Word文檔,并遍歷文檔中的所有表格,逐一提取其內容。

以下是一個示例Word文檔:

我們將編寫代碼來識別并提取這些數據。

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


def extract_tables_from_word(word_file_path):
    """
    從Word文檔中提取所有表格數據。
    返回一個列表,其中每個元素代表一個表格,表格內部是行的列表,行內部是單元格內容的列表。
    """
    document = Document()
    document.LoadFromFile(word_file_path)

    all_tables_data = []
    # 遍歷文檔中的所有節(jié)
    for sec_index in range(document.Sections.Count):
        section = document.Sections.get_Item(sec_index)
        # 遍歷節(jié)中的所有表格
        for table_index in range(section.Tables.Count):
            table = section.Tables.get_Item(table_index)
            current_table_data = []
            # 遍歷表格中的所有行
            for row_index in range(table.Rows.Count):
                table_row = table.Rows.get_Item(row_index)
                current_row_data = []
                # 遍歷行中的所有單元格
                for cell_index in range(table_row.Cells.Count):
                    table_cell = table_row.Cells.get_Item(cell_index)
                    # 提取單元格文本,并保持單元格內原有段落結構
                    paras = [table_cell.Paragraphs.get_Item(i).Text.rstrip('\r\n')
                             for i in range(table_cell.Paragraphs.Count)
                             if table_cell.Paragraphs.get_Item(i).Text.strip()]
                    current_cell_data = "\n".join(paras)
                    current_row_data.append(current_cell_data)
                current_table_data.append(current_row_data)
            all_tables_data.append(current_table_data)

    document.Close()
    return all_tables_data


# 假設您的Word文檔名為 'input.docx' 并且在當前目錄下
word_file = "input.docx"
extracted_data = extract_tables_from_word(word_file)

# 打印提取的數據以供驗證
for i, table_data in enumerate(extracted_data):
    print(f"--- Table {i + 1} Data ---")
    for row in table_data:
        print(row)

控制臺輸出結果:

代碼解析:

  • Document() 實例用于加載Word文檔。
  • document.LoadFromFile() 方法加載指定路徑的Word文檔。
  • 我們通過 document.Sections 迭代文檔中的所有節(jié),再通過 section.Tables 迭代每個節(jié)中的所有表格。
  • 對于每個表格,我們進一步迭代 table.Rows 獲取行,然后迭代 row.Cells 獲取單元格。
  • cell.Text.strip() 用于獲取單元格的純文本內容,并移除可能存在的額外空白字符。
  • 所有提取的數據都存儲在一個嵌套列表中,all_tables_data 是一個包含所有表格數據的列表,每個表格數據又是一個包含行數據的列表,行數據再包含單元格數據的列表。

數據寫入Excel與文件保存

提取到數據后,下一步就是將其寫入Excel文件。我們將使用Spire.XLS for Python來創(chuàng)建新的Excel工作簿,并將提取的數據逐一寫入工作表。

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


def write_data_to_excel(extracted_data, excel_file_path):
    """
    將提取的表格數據寫入Excel文件。
    每個Word表格將寫入Excel的一個新工作表。
    """
    workbook = Workbook()
    # 清楚默認工作表
    workbook.Worksheets.Clear()

    # 如果沒有提取到數據,則不創(chuàng)建Excel文件
    if not extracted_data:
        print("沒有從Word文檔中提取到任何表格數據。")
        return

    # 遍歷所有提取的表格數據
    for i, table_data in enumerate(extracted_data):
        # 為每個表格創(chuàng)建一個新的工作表
        sheet = workbook.Worksheets.Add(f"Table_{i + 1}")

        # 將表格數據寫入工作表
        for r_idx, row_data in enumerate(table_data):
            for c_idx, cell_value in enumerate(row_data):
                # Excel的行和列索引從1開始
                sheet.Range[r_idx + 1, c_idx + 1].Value = cell_value

        # (可選)應用基本表格格式
        # 如自動對齊列寬
        sheet.AllocatedRange.AutoFitColumns()

    # 保存Excel文件
    workbook.SaveToFile(excel_file_path, ExcelVersion.Version2016)
    workbook.Dispose()
    print(f"數據已成功寫入到 {excel_file_path}")

# 調用函數將數據寫入Excel
excel_file = "output.xlsx"
write_data_to_excel(extracted_data, excel_file)

寫入效果:

代碼解析:

  • Workbook() 實例用于創(chuàng)建一個新的Excel工作簿。
  • 我們遍歷 extracted_data 中的每個Word表格。
  • 對于第一個表格,我們使用 workbook.Worksheets[0] (默認的“Sheet1”),并為其重命名;對于后續(xù)表格,則使用 workbook.Worksheets.Add() 創(chuàng)建新的工作表。
  • 然后,我們遍歷每個表格的行和單元格數據,使用 sheet.Range[r_idx + 1, c_idx + 1].Value = cell_value 將數據寫入Excel單元格。注意,Excel的行和列索引是從1開始的,所以需要 + 1。
  • workbook.SaveToFile() 方法將工作簿保存為指定的Excel文件,ExcelVersion.Version2016 指定了保存的Excel版本。

將上述兩個部分的Python代碼片段整合在一起,您就擁有了一個完整的Word表格到Excel轉換的自動化腳本。

總結與展望

通過本文的詳細教程,我們學習了如何利用Python結合 Spire.Doc for Python 和 Spire.XLS for Python 庫,實現Word文檔中表格數據到Excel表格的高效自動化轉換。這一過程不僅省去了繁瑣的手動復制粘貼,顯著提升了數據處理效率,還最大程度地減少了人為錯誤的可能性。

這種自動化能力在多個領域都具有廣泛的應用前景,例如:

  • 報告數據整合:從多個Word報告中提取關鍵數據,匯總到Excel進行分析。
  • 企業(yè)數據遷移:將舊的Word文檔中的結構化數據批量導入到新的數據庫或系統(tǒng)。
  • 日常辦公自動化:簡化重復性數據錄入和格式轉換工作,讓您有更多時間專注于核心業(yè)務。

到此這篇關于Python實現Word表格自動化轉為Excel的文章就介紹到這了,更多相關Python Word表格轉Excel內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 執(zhí)行Python程序時模塊報錯問題

    執(zhí)行Python程序時模塊報錯問題

    這篇文章主要介紹了執(zhí)行Python程序時模塊報錯問題及解決方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • C語言中printf()函數的全面介紹及用法(簡單易懂)

    C語言中printf()函數的全面介紹及用法(簡單易懂)

    在C語言中,printf()是常用的輸出函數,包含在頭文件中,它使用格式控制字符串,其中包括格式字符、轉義字符和普通字符,格式字符以"%"開頭,文中將用法介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • Python設置在shell腳本中自動補全功能的方法

    Python設置在shell腳本中自動補全功能的方法

    今天小編就為大家分享一篇Python設置在shell腳本中自動補全功能的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 使用PDB模式調試Python程序介紹

    使用PDB模式調試Python程序介紹

    這篇文章主要介紹了使用PDB模式調試Python程序介紹,本文講解了PDB模式的使用語法,著重講解PDB模式下的常用命令,需要的朋友可以參考下
    2015-04-04
  • python通過matplotlib生成復合餅圖

    python通過matplotlib生成復合餅圖

    這篇文章主要介紹了python通過matplotlib生成復合餅圖,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • PyTorch一小時掌握之神經網絡氣溫預測篇

    PyTorch一小時掌握之神經網絡氣溫預測篇

    這篇文章主要介紹了PyTorch一小時掌握之神經網絡氣溫預測篇,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 使用Python操作Redis所有數據類型的方法

    使用Python操作Redis所有數據類型的方法

    當今互聯(lián)網時代,數據處理已經成為了一個非常重要的任務,而Redis作為一款高性能的NoSQL數據庫,越來越受到了廣大開發(fā)者的喜愛,本篇博客將介紹如何使用Python操作Redis的所有類型,以及一些高級用法,需要的朋友可以參考下
    2023-11-11
  • Python通用唯一標識符模塊uuid使用案例詳解

    Python通用唯一標識符模塊uuid使用案例詳解

    Python?uuid模塊用于生成128位全局唯一標識符,支持UUID1-5版本,適用于分布式系統(tǒng)、數據庫主鍵等場景,需注意隱私、碰撞概率及存儲優(yōu)化,推薦使用uuid4,優(yōu)化方法包括批量生成和緩存,本文給大家介紹Python通用唯一標識符模塊uuid使用,感興趣的朋友一起看看吧
    2025-07-07
  • 使用Python進行PowerPoint幻燈片背景設置

    使用Python進行PowerPoint幻燈片背景設置

    設置PowerPoint幻燈片背景不僅能夠增強演示文稿的視覺吸引力,還能幫助傳達特定的情感或信息,本文將介紹如何使用Python為PowerPoint幻燈片設置純色、漸變及圖片背景,有需要的可以參考下
    2024-11-11
  • python編程學習np.float 被刪除的問題解析

    python編程學習np.float 被刪除的問題解析

    這篇文章主要為大家介紹了python編程學習np.float 被刪除的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論

宁陵县| 林西县| 乌兰浩特市| 紫金县| 秭归县| 丹阳市| 蒙城县| 赤城县| 梁河县| 阳高县| 泸定县| 龙口市| 兰考县| 积石山| 临澧县| 奎屯市| 德安县| 玛多县| 浙江省| 昌江| 汉寿县| 昌图县| 汕尾市| 宽甸| 兰西县| 曲阜市| 桂平市| 绥江县| 碌曲县| 江孜县| 嘉义市| 梅河口市| 江油市| 溆浦县| 平阳县| 宁津县| 龙井市| 长兴县| 隆化县| 盈江县| 天柱县|