國產化Excel開發組件Spire.XLS教程:將Python列表轉換為Excel表格(3種實用場景)
在當今的數據驅動時代,Python 開發者經常需要將列表(一種基本的 Python 數據結構)轉換為 Excel 電子表格。Excel 作為各行業通用的數據展示、報告生成與信息共享工具,無論是生成業務報告、準備分析數據,還是與非技術人員協作,掌握將 Python 列表導出為 Excel 的高效方法都至關重要。
雖然像 pandas 這樣的輕量級庫可以處理基本的導出操作,但 Spire.XLS for Python 提供了對 Excel 格式、樣式及文件生成的完全控制,且無需依賴 Microsoft Excel。本文將探討如何使用該庫將各種列表結構。
Spire.XLS for Python試用下載,請聯系E-iceblue Spire官方授權代理商慧都科技
歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~
為什么要將 Python 列表轉換為 Excel?
Python 中的列表在存儲結構化或非結構化數據方面非常靈活,但 Excel 具有以下優勢:
- 協作便捷性:Excel 是跨行業通用工具,非技術人員無需掌握 Python,即可直接編輯、排序或篩選數據;
- 報告擴展性:導出后可在 Excel 中進一步添加圖表、數據透視表或數據摘要;
- 行業合規性:金融、醫療等行業常要求以 Excel 格式存儲數據,用于審計或歸檔;
- 數據可讀性:Excel 的格式工具(顏色標注、邊框、標題樣式)能讓數據更直觀,遠超原始 Python 列表的可讀性。
無論是銷售數據、用戶信息還是調研結果,將 Python 列表寫入 Excel 都能讓數據更易訪問、更顯專業。
安裝指南
1. 通過 pip 安裝(最便捷方式):
打開終端 / 命令提示符,執行以下命令:
Copypip install Spire.XLS
2. 支持的功能與格式:
該庫兼容.xls(Excel 97-2003)和.xlsx(Excel 2007 及以上)格式,可自定義 Excel 樣式(如加粗標題、調整列寬、設置顏色),滿足生產環境下的文件生成需求。
基礎場景:將簡單 Python 列表轉換為 Excel 表格
對于基本的一維列表,您可以遍歷列表項并將它們寫入單個列或行中的連續單元格。 以下示例將文本列表轉換為單個列。如果需要轉換數值列表,您可以在保存前設置數字格式。
from spire.xls import *
from spire.xls.common import *
# 創建 Workbook 對象
workbook = Workbook()
# 清除默認工作表
workbook.Worksheets.Clear()
# 添加一個新工作表
worksheet = workbook.Worksheets.Add("簡單列表")
# 準備待導出的一維列表(示例:產品列表)
data_list = ["鼠標", "鍵盤", "顯示器", "音響", "硬盤"]
# 將列表數據寫入Excel單元格(從第1行、第1列開始)
for index, value in enumerate(data_list):
worksheet.Range[index + 1, 1].Value = value
# 設置列寬以提高可讀性
worksheet.Range[1, 1].ColumnWidth = 15
# 保存工作簿
workbook.SaveToFile("簡單列表.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
如果您需要將列表導出到單個行,可以使用以下代碼:
for index, value in enumerate(data_list):
worksheet.Range[1, index + 1].Value = value

進階場景:Python 嵌套列表轉 Excel 表格
嵌套列表(二維列表)表示含行 / 列結構的表格數據,非常適合直接轉換為 Excel 表格。下面我們將一個包含員工數據(姓名、年齡、部門)的嵌套列表導出為 Excel 表格,并優化標題樣式。
from spire.xls import *
from spire.xls.common import *
# 創建一個Workbook對象
workbook = Workbook()
# 清除默認工作表
workbook.Worksheets.Clear()
# 添加一個新工作表
worksheet = workbook.Worksheets.Add("員工數據")
# 嵌套列表(行:[姓名、年齡、部門])
employee_data = [
["姓名", "年齡", "部門"], # 標題行
["Alexander", 30, "人力資源"],
["Bob", 28, "技術"],
["Charlie", 35, "市場"],
["Diana", 29, "財務"]
]
# 將嵌套列表寫入 Excel
for row_idx, row_data in enumerate(employee_data):
for col_idx, value in enumerate(row_data):
# 區分數據類型
if isinstance(value, int):
worksheet.Range[row_idx + 1, col_idx + 1].NumberValue = value
else:
worksheet.Range[row_idx + 1, col_idx + 1].Value = value
# 格式化標題行
worksheet.Range["A1:C1"].Style.Font.IsBold = True
worksheet.Range["A1:C1"].Style.Color = Color.get_Yellow()
# 設置列寬
worksheet.Range[1, 1].ColumnWidth = 10
worksheet.Range[1, 2].ColumnWidth = 6
worksheet.Range[1, 3].ColumnWidth = 15
# 保存工作簿
workbook.SaveToFile("二維列表.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
關鍵說明:
- 數據類型處理:通過 isinstance(value, int) 判斷數值類型,用 NumberValue 賦值,避免 Excel 將 “年齡” 識別為文本。
- 嵌套列表結構:第一個子列表作為標題,后續子列表作為數據行。
- 二維循環:使用嵌套循環將每行和每列的數據寫入 Excel 單元格。
輸出結果:

擴展建議:若需進一步優化表格,可使用 Spire.XLS 的其他功能,如添加單元格邊框、設置條件格式或應用其他格式選項。
實用場景:將 Python 字典列表轉換為 Excel 表格
字典列表在 Python 中常用于存儲帶有標簽字段的結構化數據(如 API 返回數據、數據庫查詢結果)。本示例將字典列表(如客戶記錄)導出為 Excel,并實現標題自動提取、列寬自適應。
from spire.xls import *
from spire.xls.common import *
# 創建一個Workbook對象
workbook = Workbook()
# 清除默認工作表
workbook.Worksheets.Clear()
# 添加一個新工作表
worksheet = workbook.Worksheets.Add("客戶數據")
# 準備字典列表(每個字典對應一條客戶數據,鍵為字段名)
customers = [
{"ID": 101, "姓名": "張xx", "郵箱": "zhang@ example.com"},
{"ID": 102, "姓名": "王xx", "郵箱": "wang@ example.com"},
{"ID": 103, "姓名": "李xx", "郵箱": "li@ example.com"}
]
# 自動提取標題
headers = list(customers[0].keys())
# 將標題寫入第1行
for col, header in enumerate(headers):
worksheet.Range[1, col + 1].Value = header
worksheet.Range[1, col + 1].Style.Font.IsBold = True # 標題加粗
# 寫入數據行
for row, customer in enumerate(customers, start=2): # 從第2行開始
for col, key in enumerate(headers):
value = customer[key]
if isinstance(value, (int, float)):
worksheet.Range[row, col + 1].NumberValue = value
else:
worksheet.Range[row, col + 1].Value = value
# 自動調整列寬
worksheet.AutoFitColumn(2)
worksheet.AutoFitColumn(3)
# 保存文件
workbook.SaveToFile("字典列表.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
核心優勢:
- 自動提取標題:從字典鍵生成標題,節省時間,避免手動輸入錯誤。
- 自動調整列寬:AutoFitColumn 自動適配文字長度,解決 “文字截斷” 問題;。
- 高擴展性:適用于大型字典列表(如 1000 + 條客戶記錄)。
輸出結果:

4 個優化 Excel 輸出的關鍵技巧
- 保留數據類型:對于數值(整數、浮點數),始終使用 NumberValue 賦值,避免 Excel 將其識別為文本(導致無法求和、排序)。
- 自動調整列寬:推薦用 Worksheet.AutoFitColumn() 替代手動設置列寬,尤其適合文本長度不固定的場景(如郵箱、備注)。
- 清晰命名工作表:避免使用默認的 “Sheet1”、“Sheet2”,建議按數據內容命名(如 “2024Q3 銷售數據”、“用戶注冊記錄”),提升文件可讀性。
- 釋放工作簿資源:處理大型數據(如 10 萬行以上)時,務必調用 Workbook.Dispose(),避免內存泄漏。
結論
通過 Python 將列表轉換為 Excel 表格是數據處理的核心技能。Spire.XLS 能輕松創建精致、可用于生產環境的文件。無論是處理簡單列表、嵌套數據還是字典,上述示例都能根據不同場景需求進行調整。
Spire.XLS for Python試用下載,請聯系E-iceblue Spire官方授權代理商慧都科技
歡迎加入Spire技術交流Q群(125237868),與更多小伙伴一起提升文檔開發技能~
常見問題解答(FAQs)
問題1:Spire.XLS 與 pandas 在轉換列表到 Excel 方面有何不同?
答:pandas 非常適合快速、基礎的導出,但格式控制能力弱(難調整字體、顏色、邊框)。而 Spire.XLS 更適合精細化導出,支持:
- 自定義樣式(顏色、字體、邊框)。
- 高級 Excel 功能(凍結窗格、條件格式、圖表)。
- 獨立功能(無需安裝 Excel)。
問題2:如何將 Excel 文件保存為不同格式?
答:在 SaveToFile 中使用 ExcelVersion 參數:
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2016)
workbook.SaveToFile("output.xls", ExcelVersion.Version97to2003)
問題3:Spire.XLS 如何處理不同的數據類型?
答:針對不同數據類型,需使用對應的賦值屬性:
- 字符串使用 .Text
- 數值使用 .NumberValue
- 日期使用 .DateTimeValue
- 布爾值(True/False)使用 .BooleanValue
問題4:為什么在添加新工作表之前要清除默認工作表?
答:創建 Workbook 時,Spire.XLS for Python 會生成默認工作表。因此,如果不使用 Workbook.Worksheets.Clear() 清除它們,最終 Excel 文件會包含額外的空工作表。
問題5:數據在 Excel 中顯示異常,可能是什么原因?
答:確認使用 1-based 索引(Excel 行 / 列從 1 開始,而非 Python 的 0 開始,以及數據類型是否與預期格式匹配。另外,確認在釋放工作簿之前已保存文件。
浙公網安備 33010602011771號