使用IRONXL FOR PYTHON

從 Python 中的 Excel 數據生成 Word 文件

查克尼思·賓
查克尼思·賓
2024年12月15日
分享:

介紹

使用Python從Excel電子表格生成Word模板提供了諸多好處,可以在各種專業和個人環境中顯著提高效率、準確性和展示效果。 透過利用自動化、自訂化和數據完整性,專業人士可以確保他們的 Word 文件成為有效的溝通工具,清楚且準確地傳達必要的信息。 其中一個可以將Microsoft Excel轉換為Microsoft Word的庫是來自Iron SoftwareIronXL Python套件和python-docx庫。

本文將探討從 Excel 文件生成 Word 文件所需的步驟。

如何在 Python 中從 Excel 數據生成 Word 文檔

  1. 創建一個名為 excelToWord.py 的 Python 文件。

  2. 添加 IronXL 和 python-docx 套件。

  3. 創建或新增 Excel 文件到專案資料夾。

  4. 使用 IronXL 閱讀 Excel 文件。

  5. 使用 python-docx 建立 Word 文件並插入 Excel 資料。

什麼是IronXL?

IronXL for Python是由Iron Software開發的一個強大函式庫,讓開發人員能在Python專案中建立、讀取和編輯Excel檔案(XLS、XLSX和CSV)。 以下是使用IronXL的一些主要功能和優勢:

主要功能

  1. 無需 Excel 依賴:IronXL 不需要在您的伺服器上安裝 Microsoft Excel,非常適合沒有 Excel 的伺服器環境。

  2. 直觀的 API:IronXL 提供自然且直觀的 API,用於處理 Excel 文件,易於整合到您的 Python 專案中。

  3. 支援多種格式:IronXL 支援多種 Excel 檔案格式,包括 XLS、XLSX、CSV 和 TSV。

  4. 儲存格樣式:您可以使用不同的字體、大小、背景、邊框和數字格式來設計儲存格。

  5. 公式處理:IronXL 可以處理 Excel 公式,並在編輯工作表時重新計算它們。

  6. 跨平台相容性:IronXL 可在 Windows、macOS、Linux、Docker、Azure 和 AWS 上運行。

什麼是 python-docx

python-docx 是一個 Python 庫,用於創建、修改和處理 Microsoft Word 文件,如 `.docx` 文件。 它提供了一個簡單的 API 來與 Word 文檔互動,允許您執行添加文字、格式化、插入表格和圖片等任務。

主要功能

1. 建立文件

您可以從頭開始生成 Word 文件並添加內容,包括段落、表格、標題等。 此套件也可用於編輯單個文件。

2. 文本操作

添加和修改段落文字。 使用「運行」(在段落內具有不同樣式的文本部分)來格式化文本(例如,加粗、斜體、下劃線等)。 新增並設計各級標題。

3. 添加表格

創建具有指定行數和列數的表格。 訪問並修改表格中的個別單元格。

4. 清單

建立具有預定義樣式的項目符號或編號列表。

5. 使用樣式

應用預定義樣式,如「標題1」、「正常」等。您也可以定義並應用自定義樣式到段落或文字。

6. 插入圖像

將圖片插入指定位置的文件中。 您可以透過指定圖像的寬度和高度來調整其大小。

先決條件

在進入程式碼之前,請確保您具備以下先決條件:

  1. 已安裝 Python:確保您的電腦上已安裝 Python。您可以從官方 Python 網站下載。

  2. IronXL 已安裝:你需要安裝 IronXL 套件。 您可以使用 pip 來做到這一點。

  3. python-docx 已安裝:你需要安裝 python-docx 套件。 您可以使用 pip 來做到這一點。

  4. Excel 檔案:建立一個含有資料的範例 Excel 檔案。

步驟 1:創建一個名為 excelToWord.py 的 Python 文件

打開您喜愛的 IDE,例如 Visual Studio Code,並創建一個名為 excelToWord.py 的檔案。

如何從 Excel 資料生成 Word 文件:圖 1 - Excel 文件生成

步驟 2:添加 IronXL 套件

使用 Pip 安裝 IronXL 和 python-docx 套件。

pip install IronXL python-docx

步驟 3:在專案資料夾中建立或新增 Excel 檔案

將範例 Excel 文件複製到代碼資料夾。 該文件包含以下數據。

如何在 Python 中從 Excel 資料生成 Word 文件:圖 2 - Excel 範例

步驟 4:使用 IronXL 讀取 Excel 文件

使用 IronXL 載入 Excel 文件並使用以下代碼讀取所有單元格。

import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

步驟 5:使用 python-docx 建立 Word 文件並插入 Excel 數據

Word 文件生成過程涉及從先前的 Excel 數據中創建一個 Word 文件。

doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx")
PYTHON

這裡是生成 Word 文件的完整代碼。

# Word documents from Excel data
import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
# document generation process
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx") # save as Microsoft Word document
PYTHON

程式碼說明

此 Python 腳本執行兩個主要任務。

使用 IronXL 從 Excel 文件讀取數據

  • 該腳本開始時為IronXL庫設置許可證,該庫用於在 Python 中處理 Excel 文件。
  • 接下來,它會載入一個 Excel 文件(sample.xlsx),並從該文件中選擇第一個工作表。
  • 該腳本從工作表讀取數據,遍歷所有行和列。 它從二維列表(data)的每個單元格中收集值,其中 Excel 工作表中的每一行對應於 data 中的一個子列表。
  • 讀取時,單元格的值將被打印到控制台上。

2. 使用 python-docx 創建 Word 文檔

  • 使用 python-docx 庫創建了一個新的 Word 文件。
  • 該腳本使用標題在文檔頂部添加一個標題(「Excel Data Export Using Python Docx」)。
  • 接著,它會在文件中建立一個表格,其中表格的首行包含 Excel 表格的標題,後續行包含來自 Excel 檔案的對應數據。
  • 最後,Word 文件被儲存為 sample.docx。

    該腳本從Excel文件(sample.xlsx)讀取數據,進行處理,然後將數據導出到新的Word文檔(sample.docx)中的表格。 Excel 工作表的第一行用作表格標題,並將每行數據添加到 Word 文檔中作為表格中的一行。

輸出

如何使用 Python 從 Excel 資料生成 Word 文件:圖 3 - Excel 到 Word

Word 文件

如何在Python中從Excel數據生成Word文檔:圖4 - Word文檔格式

IronXL 授權(提供試用)

IronXL可在附加至程式碼的有效授權檔案上運作。 用戶可以輕鬆地從授權頁面獲取試用許可。

要使用許可證,在使用 IronXL 庫之前,請按照以下方式將許可證放在代碼中的某處。

ironxl.License.LicenseKey = "Your License Key"
PYTHON

結論

這段範例代碼展示了一種有效的方法,使用IronXLExcel文件讀取數據,然後使用python-docx將該數據匯出到Word文件中。 該過程涉及兩個主要步驟:

  1. 從 Excel 提取數據:該腳本載入一個 Excel 文件並從其第一張工作表中提取數據。 它遍歷行和列以將單元格值收集到列表中,該列表可以輕鬆操作或保存。

  2. 建立和填充 Word 文件:使用 python-docx 庫,該腳本創建一個新的 Word 文件,添加標題,並將提取的 Excel 數據格式化為 Word 文件中的表格。 它會自動將 Excel 資料的第一列設為標題,剩餘的列則作為表格數據。

    此方法允許將資料從 Excel 無縫轉移到 Word,這對於報告生成、資料匯出或文件自動化等任務可能很有用。 IronXL 結合用於 Excel 處理和 python-docx 用於 Word 文件創建,為在 Python 中處理這些文件格式提供了一個強大的解決方案。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
如何在 Python 中建立 Excel 檔案
下一個 >
如何從 Excel 文件中移除工作表在 Python 中

準備開始了嗎? 版本: 2025.4 剛剛發布

查看許可證 >