從 Excel 資料生成 Word 文件於 Python 中
使用Python從Excel試算表生成Word模板提供許多優勢,可顯著提升各種專業和個人背景下的效率、準確性和展示效果。 透過利用自動化、定制化和資料完整性,專業人士可以確保他們的Word文件成為有效的溝通工具,清晰準確地傳達重要資訊。 可以將Microsoft Excel轉換成Microsoft Word的一個程式庫是IronXL,這是由Iron Software提供的一個Python包,以及python-docx程式庫。
本文將探討從Excel文件生成Word文件所需的步驟。
如何在Python中從Excel資料生成Word文件
- 建立一個名為
excelToWord.py的Python文件。 - 安裝IronXL和python-docx套件。
- 在項目資料夾中建立或新增一個Excel文件。
- 使用IronXL讀取Excel文件。
- 使用python-docx建立Word文件並插入Excel資料。
什麼是IronXL?
IronXL for Python是Iron Software開發的一個強大的程式庫,允許開發者在Python專案中建立、讀取和編輯Excel文件(XLS、XLSX和CSV)。 以下是使用IronXL的一些關鍵功能和優勢:
關鍵功能
- 無需Excel依賴: IronXL不需要在伺服器上安裝Microsoft Excel,這使它對於不裝有Excel的伺服器環境非常理想。
- 直觀的API: IronXL提供了一個自然且直觀的API來處理Excel文件,使其易於整合到您的Python專案中。
- 支持多種格式: IronXL支持多種Excel文件格式,包括XLS、XLSX、CSV和TSV。
- 單元格樣式: 您可以使用不同的字體、大小、背景、邊框和數字格式來設置單元格樣式。
- 公式處理: IronXL可以處理Excel公式並在編輯表格時重新計算它們。
- 跨平台相容性: IronXL可以在Windows、macOS、Linux、Docker、Azure和AWS上運行。
什麼是python-docx
python-docx是一個Python程式庫,它可建立、修改並處理包括.docx文件在內的Microsoft Word文件。 它提供了一個簡單的API來與Word文件互動,可以執行新增文字、格式化、插入表格和圖片等任務。
關鍵功能
1. 建立文件
您可以從頭開始生成Word文件並新增內容,包括段落、表格、標題等。 此套件還可用於編輯單個文件。
2. 文字操作
新增和修改文字段落。 使用"運行"(段落中具有不同樣式的文字部分)格式化文字(例如,粗體、斜體、下划線等)。 新增並設置各種級別的標題樣式。
3. 新增表格
建立具有指定行數和列數的表格。 存取和修改表格中的單個單元格。
4. 列表
使用預定義樣式建立項目符號或編號列表。
5. 使用樣式
應用預定義樣式,如"標題1"、"普通",等。您還可以定義並應用自定義樣式到段落或文字。
6. 插入圖片
在文件特定位置插入圖片。 您可以透過指定寬度和高度來調整圖片大小。
先決條件
在進入程式碼之前,請確保您擁有以下先決條件:
- Python已安裝: 確保您的機器安裝了Python。您可以從官方Python網站下載。
- IronXL已安裝: 您需要安裝IronXL套件。 您可以使用pip來完成這項操作。
- python-docx已安裝: 您需要安裝python-docx套件。 您可以使用pip來完成這項操作。
- Excel文件: 建立一個帶有資料的範例Excel文件。
步驟1:建立一個名為excelToWord.py的Python文件
打開您喜愛的IDE,如Visual Studio Code,並建立一個名為excelToWord.py的文件。

步驟2:新增IronXL和python-docx套件
使用Pip來安裝IronXL和python-docx套件。
pip install IronXL python-docxpip install IronXL python-docx步驟3:在項目資料夾中建立或新增一個Excel文件
將範例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)步驟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")生成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腳本執行兩個主要任務。
1. 使用IronXL從Excel文件讀取資料
- 腳本首先設置了用於處理Python中Excel文件的IronXL程式庫授權。
- 然後它載入一個Excel文件(
sample.xlsx)並選擇文件中的第一個工作表。 - 腳本從工作表中讀取資料,遍歷所有行和列。 它將每個單元格的值收集到一個2D列表(資料)中,其中Excel表中的每一行對應於資料中的一個子列表。
- 單元格的值在讀取時被列印到控制台。
2. 使用python-docx建立Word文件
- 使用python-docx程式庫建立一個新的Word文件。
- 腳本在文件的頂部新增一個標題("透過Python Docx導出Excel資料")。
- 然後它在文件中建立一個表格,其中表格的第一行包含Excel表的第一行的標題,隨後的行包含來自Excel文件的相應資料。
- 最後,Word文件被保存為
sample.docx。
腳本從Excel文件(sample.docx)。 Excel表的第一行用作表格的標題,來自Excel表的每行資料被新增到Word文件中作為表格中的一行。
輸出

Word文件

IronXL授權(可試用)
IronXL依賴於附加到程式碼的有效授權文件。 使用者可以很容易地從授權頁面獲得試用授權。
要使用授權,請在使用IronXL程式庫之前在程式碼中某處放置授權金鑰,如下所示。
ironxl.License.LicenseKey = "Your License Key"ironxl.License.LicenseKey = "Your License Key"結論
範例程式碼展示了如何使用IronXL有效地從Excel文件讀取資料,然後使用python-docx導出到Word文件的方式。 這個過程涉及兩個主要步驟:
- 從Excel提取資料: 腳本載入一個Excel文件並從其第一個工作表中提取資料。 它遍歷行和列,將單元格的值收集到一個列表中,該列表可以被輕鬆操作或保存。
- 建立並填充Word文件: 使用python-docx程式庫,腳本建立一個新的Word文件,新增標題,並將提取的Excel資料格式化為Word文件中的表格。 它會自動將Excel資料的第一行作為標題,剩餘行作為表格資料。
這種方法允許Excel到Word之間的無縫資料轉移,這對於如報告生成、資料出口或文件自動化等任務非常有用。 將Excel處理的IronXL與Word文件建立的python-docx結合起來,為在Python中使用這些文件格式提供了一個強大的解決方案。
常見問題
如何使用Python將Excel資料轉換為Word文件?
您可以通過使用IronXL庫讀取和處理Excel文件,然後使用python-docx庫建立並填充Word文件來將Excel資料轉換為Word文件。
結合使用IronXL和python-docx有什麼優勢?
IronXL和python-docx的組合允許Excel到Word文件轉換的無縫整合和自動化。IronXL提供讀寫Excel文件而不需要Microsoft Excel的功能,而python-docx提供簡單API來操作Word文件。
如何在沒有安裝Microsoft Excel的情況下讀取Python中的Excel文件?
您可以使用IronXL庫在沒有安裝Microsoft Excel的情況下讀取Python中的Excel文件。IronXL允許您程式化地載入Excel文件和存取其資料。
從Excel資料建立Word文件的過程是什麼?
該流程涉及使用IronXL從Excel文件中讀取資料,然後使用python-docx建立Word文件,將Excel資料插入表格或文字塊中。
IronXL能否處理多種Excel文件格式?
是的,IronXL支持多種Excel文件格式,如XLS、XLSX和CSV,提供處理不同型別Excel文件的靈活性。
如何在我的Python環境中安裝IronXL和python-docx?
您可以在您的Python環境中使用pip命令安裝IronXL和python-docx:pip install IronXL python-docx。
自動化Excel到Word文件轉換有什麼好處?
自動化Excel到Word文件轉換能夠提高效率、準確性和表現力,減少人工任務、最小化錯誤並保持格式和資料一致性。
如何使用IronXL設計Excel單元格?
IronXL提供設計Excel單元格的功能,允許您自定義單元格外觀,例如設置字體、顏色和邊框,這在將資料轉移到Word之前的格式設置中很有用。









