跳過到頁腳內容
使用 IRONXL FOR PYTHON

用 Python 從 Excel 資料產生 Word 文件

使用Python從 Excel 電子表格產生 Word 範本具有諸多優勢,可顯著提高各種專業和個人場合的效率、準確性和簡報效果。 透過利用自動化、自訂和資料完整性,專業人士可以確保他們的 Word 文件成為有效的溝通工具,清晰且準確地傳達重要訊息。 Iron SoftwareIronXL Python 套件和python-docx函式庫就是這樣一種可以將Microsoft Excel轉換為Microsoft Word 的函式庫。

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

如何使用 Python 從 Excel 資料產生 Word 文檔

  1. 建立一個名為excelToWord.py的 Python 檔案。
  2. 安裝 IronXL 和 python-docx 軟體套件。
  3. 在專案資料夾中建立或新增 Excel 檔案。
  4. 使用 IronXL 讀取 Excel 文件。
  5. 建立 Word 文檔,並使用 python-docx 插入 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. Lists

建立具有預先定義樣式的帶有項目符號或編號的清單。

5. 運用風格

套用預先定義的樣式,例如"一級標題"、"正文"等。您也可以定義自訂樣式並將其套用至段落或文字。

6. 插入圖片

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

先決條件

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

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

  1. IronXL 已安裝:您需要安裝 IronXL 軟體套件。 你可以使用 pip 來實現這一點。
  2. python-docx 已安裝:您需要安裝 python-docx 軟體包。 你可以使用 pip 來實現這一點。
  3. Excel 檔案:建立一個包含資料的範例 Excel 檔案。

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

開啟你喜歡的 IDE,如 Visual Studio Code,並建立一個名為excelToWord.py的檔案。

如何在 Python 中從 Excel 資料產生 Word 文件:圖 1 - Excel 文件生成

步驟 2:新增 IronXL 和 python-docx 套件

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

pip install IronXL python-docx
pip install IronXL python-docx
SHELL

步驟三:建立或新增 Excel 檔案到專案資料夾

將範例 Excel 檔案複製到您的程式碼資料夾。 該文件包含以下數據。

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

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

使用 IronXL 載入 Excel 文檔,並使用以下程式碼讀取所有儲存格。

import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document

# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

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

Word 文件產生過程包括建立 Word 文件並插入從 Excel 文件讀取的資料。

# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
# Create a new Word document
doc = Document()

# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)

# Populate table with data from Excel
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)

# Save the generated Word document
doc.save("sample.docx")
PYTHON

產生 Word 文件的完整程式碼

# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
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)

# Save the Word document
doc.save("sample.docx")
# Import required libraries
import ironxl
from docx import Document

# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"

# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]

# Read data from the Excel sheet
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)  # Print each cell value
        row_data.append(cell_value)
    data.append(row_data)

# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)

# Create a table in the Word document
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)

# Save the Word document
doc.save("sample.docx")
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 表格的第一行用作表格標題,Excel 表格中的每一行資料都會作為表格中的一行新增到 Word 文件中。

輸出

如何在 Python 中從 Excel 資料產生 Word 文件:圖 3 - Excel 轉 Word

Word 文件

如何在 Python 中從 Excel 資料產生 Word 文件:圖 4 - Word 文件格式

IronXL 許可證(提供試用版)

IronXL 需要使用附加到程式碼中的有效許可證檔案才能運作。 使用者可以輕鬆地從許可證頁面取得試用許可證。

若要使用該許可證,請在使用 IronXL 庫之前,將許可證金鑰放置在程式碼中的某個位置,如下所示。

ironxl.License.LicenseKey = "Your License Key"
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 中處理這些文件格式提供了一個強大的解決方案。

常見問題解答

如何使用 Python 將 Excel 資料轉換成 Word 文件?

您可以使用 Python 將 Excel 資料轉換成 Word 文件,方法是利用 IronXL 函式庫來讀取和處理 Excel 檔案,然後再使用 python-docx 函式庫來建立和填充 Word 文件。

同時使用 IronXL 和 python-docx 有什麼好處?

IronXL 和 python-docx 的結合可以實現 Excel 到 Word 文件轉換的無縫集成和自動化。IronXL 提供讀取和編輯 Excel 檔案等功能,而不需要 Microsoft Excel,而 python-docx 則提供簡單的 API 來操作 Word 文件。

在沒有安裝 Microsoft Excel 的情況下,如何在 Python 中讀取 Excel 檔案?

透過 IronXL for Python 函式庫,您可以在沒有安裝 Microsoft Excel 的情況下,在 Python 中讀取 Excel 檔案。IronXL 可讓您載入 Excel 檔案,並以程式化的方式存取其資料。

從 Excel 資料建立 Word 文件的流程為何?

過程包括使用 IronXL 從 Excel 檔案讀取資料,然後再使用 python-docx 建立 Word 文件,在其中將 Excel 資料插入表格或文字區塊。

IronXL 可以處理多種 Excel 檔案格式嗎?

是的,IronXL.Excel 支援多種 Excel 檔案格式,例如 XLS、XLSX 和 CSV,可彈性處理不同類型的 Excel 檔案。

如何在我的 Python 環境中安裝 IronXL 和 python-docx ?

您可以使用 pip 將 IronXL for Python 和 python-docx 安裝在您的 Python 環境中,指令如下:pip install IronXL python-docx.

將 Excel 自動轉換為 Word 文件有哪些好處?

將 Excel 轉換為 Word 文件的過程自動化,可以減少手動工作、將錯誤減到最低,並使各文件的格式和資料完整性保持一致,從而提高效率、準確性和表達能力。

如何使用 IronXL.Excel 設定 Excel 單元格的樣式?

IronXL.Excel 提供 Excel 單元格樣式的功能,允許您自訂單元格外觀,例如設定字型、顏色和邊框,這對於將資料傳輸至 Word 前的格式化非常有用。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。