使用 Python 從 Excel 資料產生 Word 文檔
使用Python從 Excel 電子表格產生 Word 範本具有諸多優勢,可顯著提高各種專業和個人場合的效率、準確性和簡報效果。 透過利用自動化、自訂和資料完整性,專業人士可以確保他們的 Word 文件成為有效的溝通工具,清晰且準確地傳達重要訊息。 Iron Software的IronXL Python 套件和python-docx函式庫就是這樣一種可以將Microsoft Excel轉換為Microsoft Word 的函式庫。
本文將探討從 Excel 文件產生 Word 文件所需的步驟。
如何使用 Python 從 Excel 資料產生 Word 文檔
- 建立一個名為
excelToWord.py的 Python 檔案。 - 安裝 IronXL 和 python-docx 軟體套件。
- 在專案資料夾中建立或新增 Excel 檔案。
- 使用 IronXL 讀取 Excel 文件。
- 建立 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. 列表
建立具有預先定義樣式的項目符號清單或編號清單。
5. 運用風格
套用預先定義的樣式,例如"一級標題"、"正文"等。您也可以定義自訂樣式並將其套用至段落或文字。
6. 插入圖片
在文件的指定位置插入圖片。 您可以透過指定圖片的寬度和高度來調整圖片的大小。
先決條件
在深入程式碼之前,請確保您已具備以下先決條件:
1.已安裝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 檔案讀取數據
- 該腳本首先設定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 文件中。
輸出
Word 文件
IronXL 許可證(提供試用版)
IronXL 需要使用附加到程式碼中的有效許可證檔案才能運作。 使用者可以輕鬆地從許可證頁面取得試用許可證。
若要使用該許可證,請在使用 IronXL 庫之前,將許可證金鑰放置在程式碼中的某個位置,如下所示。
ironxl.License.LicenseKey = "Your License Key"ironxl.License.LicenseKey = "Your License Key"結論
此範例程式碼示範了一種使用IronXL從Excel 檔案中讀取數據,然後使用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 提供了無需 Microsoft Excel 即可讀取和編輯 Excel 文件的功能,而 python-docx 則提供了一個簡單的 API 來操作 Word 文件。
如何在未安裝 Microsoft Excel 的情況下,使用 Python 讀取 Excel 檔案?
即使沒有安裝 Microsoft Excel,您也可以使用 IronXL 程式庫在 Python 中讀取 Excel 檔案。 IronXL 可讓您以程式設計方式載入 Excel 檔案並存取其中的資料。
如何將Excel資料轉換為Word文件?
這個過程包括使用 IronXL 從 Excel 文件中讀取數據,然後使用 python-docx 建立一個 Word 文檔,將 Excel 資料插入到表格或文字區塊中。
IronXL 可以處理多種 Excel 檔案格式嗎?
是的,IronXL 支援多種 Excel 檔案格式,例如 XLS、XLSX 和 CSV,可以靈活處理不同類型的 Excel 檔案。
如何在我的 Python 環境中安裝 IronXL 和 python-docx?
您可以使用 pip 在 Python 環境中安裝 IronXL 和 python-docx,指令如下: pip install IronXL python-docx 。
自動將 Excel 文件轉換為 Word 文件有哪些好處?
將 Excel 文件自動轉換為 Word 文件可以減少人工操作,最大限度地減少錯誤,並確保文件格式的一致性和資料完整性,從而提高效率、準確性和簡報效果。
如何使用 IronXL 設定 Excel 儲存格樣式?
IronXL 提供設定 Excel 儲存格樣式的功能,可讓您自訂儲存格外觀,例如設定字體、顏色和邊框,這對於在將資料傳輸到 Word 之前進行格式設定非常有用。







