使用Python在Excel文檔中創(chuàng)建表格并應用表格樣式
在現代企業(yè)辦公中,Excel 表格是處理和展示數據的核心工具。從銷售數據統(tǒng)計到財務報表生成,再到項目進度跟蹤,結構化的表格不僅能提高數據可讀性,還能讓報表顯得更專業(yè)。然而,當面對大量數據或需要生成定期報表時,手動創(chuàng)建表格并設置樣式不僅耗時,還容易出錯。而 Python 擁有強大的文檔處理能力,通過編程實現 Excel 表格自動化創(chuàng)建和樣式應用,既可以保證數據準確性,也可以大幅提升工作效率。
本文將使用 Free Spire.XLS for Python 展示如何在 Excel 中創(chuàng)建表格(ListObject),并應用各種內置表格樣式,包括淺色、中等和深色樣式系列,以及如何配置表格的總計行、行條紋和列條紋等高級功能,結合實際業(yè)務場景的數據示例,幫助你快速掌握 Excel 表格自動化技能。
1. 環(huán)境準備與庫安裝
首先需要安裝 Free Spire.XLS for Python:
pip install spire.xls.free
安裝完成后,我們可以開始創(chuàng)建 Excel 工作簿并準備數據。下面是一個創(chuàng)建 Excel 文件的簡單示例:
from spire.xls import Workbook
# 創(chuàng)建一個新的工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "員工數據"
# 保存初始文件
workbook.SaveToFile("EmployeeData.xlsx")
workbook.Dispose()
print("Excel 文件已創(chuàng)建:EmployeeData.xlsx")說明:Workbook 對象代表整個 Excel 文件,Worksheets[0] 獲取第一個工作表。這里我們創(chuàng)建了一個名為"員工數據"的工作表,為后續(xù)寫入數據和創(chuàng)建表格做好準備。
注意:新建的Excel工作簿有三個默認的工作表,Sheet1、Sheet2、Sheet3,可根據需要直接讀取編輯或清除后重新創(chuàng)建。
2. 在 Excel 中寫入業(yè)務數據
假設我們正在準備一份員工信息報表,包含員工編號、姓名、部門、職位和薪資等信息。我們可以在代碼中直接生成數據:
from spire.xls import Workbook
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "員工數據"
# 寫入表頭
headers = ["員工編號", "姓名", "部門", "職位", "薪資"]
for col, header in enumerate(headers, start=1):
sheet.Range[1, col].Text = header
# 寫入示例數據
employee_data = [
["E001", "張三", "銷售部", "銷售經理", 15000],
["E002", "李四", "銷售部", "銷售專員", 8000],
["E003", "王五", "技術部", "技術總監(jiān)", 25000],
["E004", "趙六", "技術部", "軟件工程師", 12000],
["E005", "錢七", "財務部", "財務經理", 18000],
["E006", "孫八", "財務部", "會計", 9000],
["E007", "周九", "人事部", "人事經理", 16000],
["E008", "吳十", "人事部", "招聘專員", 7500],
]
for row, data in enumerate(employee_data, start=2):
for col, value in enumerate(data, start=1):
if isinstance(value, str):
sheet.Range[row, col].Value = value
else:
sheet.Range[row, col].NumberValue = value
# 自動調整列寬
sheet.Range.AutoFitColumns()
workbook.SaveToFile("EmployeeData.xlsx")
workbook.Dispose()
print("業(yè)務數據已寫入 Excel 文件")工作表預覽:

說明:
這里我們模擬了8名員工的人事信息,涵蓋不同部門和職位,更貼近實際業(yè)務場景,便于創(chuàng)建有意義的表格。
3. 創(chuàng)建基礎表格并應用淺色樣式
表格(ListObject)是 Excel 中用于管理和格式化數據的強大工具。我們可以將數據區(qū)域轉換為表格,并應用內置樣式:
from spire.xls import Workbook, TableBuiltInStyles
workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]
# 創(chuàng)建表格(ListObject),指定數據區(qū)域
sheet.ListObjects.Create("員工信息表", sheet.Range[1, 1, 9, 5])
# 應用淺色樣式
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleLight9
workbook.SaveToFile("EmployeeTable_Light.xlsx")
workbook.Dispose()
print("基礎表格創(chuàng)建完成,已應用淺色樣式")工作表預覽:

說明:
sheet.ListObjects.Create()方法創(chuàng)建一個新的表格對象,第一個參數是表格名稱,第二個參數是數據區(qū)域范圍。TableBuiltInStyles.TableStyleLight9是 Excel 內置的淺色樣式之一,適合簡潔的表格展示。- 表格會自動添加篩選按鈕,方便數據篩選和排序。
4. 應用中等樣式并配置表格選項
中等樣式系列提供了更豐富的顏色和格式選項,我們可以結合表格功能進行更細致的配置:
from spire.xls import Workbook, TableBuiltInStyles
workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]
# 創(chuàng)建表格
sheet.ListObjects.Create("員工信息表", sheet.Range[1, 1, 9, 5])
# 應用中等樣式
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleMedium9
# 顯示行條紋(隔行變色)
sheet.ListObjects[0].ShowTableStyleRowStripes = True
# 顯示列條紋
sheet.ListObjects[0].ShowTableStyleColumnStripes = True
workbook.SaveToFile("EmployeeTable_Medium.xlsx")
workbook.Dispose()
print("表格創(chuàng)建完成,已應用中等樣式和條紋配置")工作表預覽:

說明:
TableBuiltInStyles.TableStyleMedium9提供了更醒目的顏色方案,適合需要突出數據的場景。ShowTableStyleRowStripes和ShowTableStyleColumnStripes屬性控制行和列的條紋顯示,有助于提高表格的可讀性。- 條紋樣式會自動隔行或隔列應用不同的背景色,使數據更易于閱讀。
5. 應用深色樣式并配置總計行
深色樣式系列提供了更強烈的視覺效果,適合需要突出重點數據的場景。同時,我們可以配置表格的總計行功能:
from spire.xls import Workbook, TableBuiltInStyles, ExcelTotalsCalculation
workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]
# 創(chuàng)建表格
sheet.ListObjects.Create("員工信息表", sheet.Range[1, 1, 9, 5])
# 應用深色樣式
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleDark9
# 顯示總計行
sheet.ListObjects[0].DisplayTotalRow = True
# 設置總計行的標簽
sheet.ListObjects[0].Columns[0].TotalsRowLabel = "總計"
# 設置各列的計算方式
sheet.ListObjects[0].Columns[1].TotalsCalculation = ExcelTotalsCalculation.none # 姓名列不計算
sheet.ListObjects[0].Columns[2].TotalsCalculation = ExcelTotalsCalculation.none # 部門列不計算
sheet.ListObjects[0].Columns[3].TotalsCalculation = ExcelTotalsCalculation.none # 職位列不計算
sheet.ListObjects[0].Columns[4].TotalsCalculation = ExcelTotalsCalculation.Sum # 薪資列求和
workbook.SaveToFile("EmployeeTable_Dark.xlsx")
workbook.Dispose()
print("表格創(chuàng)建完成,已應用深色樣式和總計行")工作表預覽:

說明:
TableBuiltInStyles.TableStyleDark9提供了深色背景,適合需要強調數據的場景。DisplayTotalRow屬性控制是否顯示總計行。TotalsRowLabel設置第一列總計行的標簽文本。TotalsCalculation枚舉值控制每列的計算方式,包括Sum(求和)、Average(平均值)、Count(計數)等。- 總計行會自動計算數值列的總和,大大簡化了數據分析工作。
6. 創(chuàng)建帶篩選功能的表格
表格的篩選功能是 Excel 表格的重要特性之一,我們可以通過代碼自動啟用:
from spire.xls import Workbook, TableBuiltInStyles
workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]
# 創(chuàng)建表格,使用動態(tài)范圍
sheet.ListObjects.Create("員工信息表", sheet.Range[1, 1, sheet.LastRow, sheet.LastColumn])
# 應用樣式
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleLight11
# 表格默認啟用篩選功能,無需額外配置
workbook.SaveToFile("EmployeeTable_Filter.xlsx")
workbook.Dispose()
print("帶篩選功能的表格創(chuàng)建完成")工作表預覽:

說明:
- 使用
sheet.LastRow和sheet.LastColumn可以動態(tài)獲取數據的實際范圍,適合數據量不確定的場景。 - 表格創(chuàng)建后會自動在表頭添加篩選下拉按鈕,用戶可以點擊進行數據篩選。
- 篩選功能使得數據管理和分析更加便捷,特別適合大型數據集。
7. 關鍵類、方法與屬性總結
在前面的章節(jié)中,我們展示了如何使用 Free Spire.XLS for Python 創(chuàng)建表格并應用各種樣式。從技術實現角度來看,表格創(chuàng)建和樣式設置的核心流程可以總結為以下幾個關鍵步驟:
Python Excel 表格創(chuàng)建步驟總結
- 準備數據將業(yè)務數據寫入 Excel 工作表。數據應包含表頭和數據行,格式規(guī)范,便于轉換為表格。
- 創(chuàng)建表格對象使用
sheet.ListObjects.Create()方法創(chuàng)建表格對象,指定表格名稱和數據區(qū)域范圍。 - 應用表格樣式通過
BuiltInTableStyle屬性選擇內置樣式,包括淺色、中等和深色三個系列。 - 配置表格選項設置
ShowTableStyleRowStripes、ShowTableStyleColumnStripes、DisplayTotalRow等屬性,自定義表格外觀和功能。 - 配置總計行使用
TotalsRowLabel和TotalsCalculation屬性設置總計行的標簽和計算方式。 - 保存文件使用
workbook.SaveToFile()將生成的表格保存到指定文件。
關鍵類、方法與屬性
| 類 / 方法 / 屬性 | 說明 |
|---|---|
Workbook | Excel 工作簿對象,支持創(chuàng)建、加載和保存文件 |
Workbook.LoadFromFile() | 從本地文件加載 Excel 工作簿 |
Workbook.SaveToFile() | 保存 Excel 文件到指定路徑 |
Worksheet | 表示單個工作表,是操作數據和表格的主體對象 |
sheet.ListObjects.Create() | 在工作表中創(chuàng)建新的表格(ListObject)對象 |
sheet.ListObjects[0] | 獲取工作表中的第一個表格對象 |
ListObject.BuiltInTableStyle | 設置表格的內置樣式 |
TableBuiltInStyles | 枚舉類,提供所有內置表格樣式選項 |
ListObject.ShowTableStyleRowStripes | 控制是否顯示行條紋 |
ListObject.ShowTableStyleColumnStripes | 控制是否顯示列條紋 |
ListObject.DisplayTotalRow | 控制是否顯示總計行 |
ListObject.Columns[].TotalsRowLabel | 設置指定列總計行的標簽文本 |
ListObject.Columns[].TotalsCalculation | 設置指定列總計行的計算方式 |
ExcelTotalsCalculation | 枚舉類,提供總計行計算選項(Sum、Average、Count等) |
sheet.LastRow | 獲取工作表中最后一行的行號 |
sheet.LastColumn | 獲取工作表中最后一列的列號 |
內置表格樣式系列
Free Spire.XLS for Python 提供了三個主要的內置表格樣式系列:
| 樣式系列 | 特點 | 適用場景 |
|---|---|---|
| Light 系列 | 淺色背景,簡潔清新 | 日常報表、數據清單 |
| Medium 系列 | 中等色彩,平衡美觀 | 業(yè)務分析、管理報表 |
| Dark 系列 | 深色背景,突出重點 | 演示文稿、重要數據展示 |
每個系列包含多個樣式選項(如 TableStyleLight1 到 TableStyleLight21),可以根據實際需求選擇最合適的樣式。
通過理解上述關鍵類、方法和屬性,你可以靈活地創(chuàng)建各種類型的表格,并根據業(yè)務需求進行精細定制。掌握這些技術細節(jié),能讓你在實際項目中快速生成高質量、可讀性強的 Excel 報表,同時保持代碼簡潔和可維護性。
總結
本文以實際業(yè)務數據為例,展示了如何使用 Free Spire.XLS for Python 在 Excel 中創(chuàng)建表格并應用各種樣式,包括淺色、中等和深色樣式系列,以及如何配置表格的總計行、行條紋、列條紋和篩選功能。通過編程方式創(chuàng)建和格式化表格,不僅避免了手動操作的繁瑣和易錯問題,還能輕松應對批量報告和復雜數據管理需求。
掌握這一技能后,你可以將數據報表生成完全自動化,從而節(jié)省時間,提高效率,并為數據分析和決策提供可靠的支持。結合 Free Spire.XLS 的其他功能,如條件格式、數據驗證和圖表操作,可以進一步打造智能化的 Excel 自動化工作流,讓企業(yè)的數據價值發(fā)揮到最大。
以上就是使用Python在Excel文檔中創(chuàng)建表格并應用表格樣式的詳細內容,更多關于Python Excel創(chuàng)建表格并應用樣式的資料請關注腳本之家其它相關文章!

