Stories

Detail Return Return

國產化Excel開發組件Spire.XLS教程:將Python列表轉換為Excel表格(3種實用場景) - Stories Detail

在當今的數據驅動時代,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 開始,以及數據類型是否與預期格式匹配。另外,確認在釋放工作簿之前已保存文件。

user avatar littlelyon Avatar usdoc Avatar huanjinliu Avatar
Favorites 3 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.