使用IRONXL FOR PYTHON

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

發佈 2024年12月15日
分享:

介紹

使用 IronWord 從 Excel 試算表生成 Word 模板Python在各種專業和個人情境中,提供的諸多優勢可以顯著提高效率、準確性和表現。 透過利用自動化、自訂化和數據完整性,專業人士可以確保他們的 Word 文件成為有效的溝通工具,清楚且準確地傳達必要的信息。 一個可以轉換的這樣的函式庫微軟 ExcelMicrosoft WordIronXL來自 Python 套件Iron Software和該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 開發的強大函式庫,讓開發人員能夠建立、讀取和編輯 Excel 檔案。(XLS、XLSX 和 CSV)在 Python 專案中。 以下是使用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 的檔案。

如何在 Python 中從 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 腳本執行兩個主要任務。

1. 使用 IronXL 從 Excel 文件讀取資料

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

2. 使用 python-docx 建立 Word 文件

  • 使用 python-docx 庫創建一個新的 Word 文件。
  • 該腳本添加了一個標題("使用 Python Docx 匯出 Excel 資料")在文件頂部使用標題。
  • 然後在文件中建立一個表格,其中表格的第一行包含來自 Excel 工作表第一行的標題,後續行包含來自 Excel 文件的相應數據。
  • 最後,Word 文件被儲存為 sample.docx。

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

輸出

如何從 Python 的 Excel 數據生成 Word 文檔:圖 3 - Excel 到 Word

Word 文件

如何從 Excel 數據生成 Word 文件(Python):圖 4 - Word 文件格式

IronXL 授權(提供試用)

IronXL可在附加至程式碼的有效授權檔案上運作。 使用者可以輕鬆從授權頁面.

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

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

結論

以下範例程式碼展示了使用 IronXL 有效讀取 Excel 文件中的數據,然後使用 python-docx 將這些數據導出到 Word 文件中的方法。 該過程涉及兩個主要步驟:

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

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

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

< 上一頁
如何在 Python 中建立 Excel 檔案
下一個 >
如何從 Excel 文件中移除工作表在 Python 中