在數據處理與交換中,CSV(逗號分隔值)格式因簡潔通用,成為跨應用、跨數據庫的數據交換首選。對於 Python 開發者而言,將 Python 列表轉換為 CSV 格式是高頻需求——無論是導出應用數據、生成報表,還是準備分析數據集,都離不開這一操作。
Spire.XLS for Python 憑藉直觀可靠的方法簡化了這一過程,無需依賴 Microsoft Excel,即可輕鬆將各類列表導出到 CSV 文件。本文將分步驟詳解如何利用該工具實現轉換,覆蓋從簡單一維列表到複雜字典列表的全場景。
Spire.XLS for Python試用下載,請聯繫慧都科技
歡迎加入Spire技術交流Q羣(125237868),與更多小夥伴一起提升文檔開發技能~
Spire.XLS for Python 快速入門
為什麼選擇 Spire.XLS?
Python內置的 csv 模塊可滿足基礎需求,但 Spire.XLS 提供了更強大的功能:
- 無縫兼容多種數據類型(字符串、數字、布爾值等);
- 支持自定義分隔符(如分號,適配歐洲地區格式);
- 可導出為 CSV、XLSX、XLS 等多種格式;
- 對簡單或複雜數據結構(嵌套列表、字典列表)均有良好支持。
安裝步驟
通過 pip 即可快速安裝 Spire.XLS for Python,在終端或命令提示符中運行:
pip install Spire.XLS
安裝完成後,即可直接導入模塊開始編碼。
Python 將一維列表導出為 CSV 文件
一維列表是簡單的序列值(如 ["蘋果", "香蕉", "櫻桃"])。 以下是將這些值寫入 CSV 中的單行或單列的步驟。
步驟 1:導入 Spire.XLS 模塊
首先,從 Spire.XLS 導入必要的類:
from spire.xls import *
from spire.xls.common import *
步驟2:創建工作簿與工作表
Spire.XLS 使用工作簿和工作表來組織數據。我們將創建一個新的工作簿並添加一個新的工作表:
# 初始化工作簿
workbook = Workbook()
# 清除默認工作表,新建一個工作表
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("一維列表")
步驟 3:將一維列表數據寫入工作表
可以選擇將列表寫入單行(水平)或單列(垂直)。
示例 1:將一維列表寫入單行
data_list = ["蘋果", "香蕉", "橙子", "葡萄", "芒果"]
# 循環寫入第1行,列索引從1開始
for i, item in enumerate(data_list):
worksheet.Range[1, i+1].Value = item
示例 2:將一維列表寫入單列
data_list = ["蘋果", "香蕉", "橙子", "葡萄", "芒果"]
# 循環寫入第1列,行索引從1開始
for i, item in enumerate(data_list):
worksheet.Range[i+1, 1].Value = item
步驟 4:將工作表保存為 CSV 文件
使用 SaveToFile() 將工作簿導出為 CSV 文件。指定 FileFormat.CSV 以確保正確的格式:
# 指定文件格式為CSV
workbook.SaveToFile("一維列表.csv", FileFormat.CSV)
# 釋放資源
workbook.Dispose()
輸出效果:
Python 將二維列表導出為 CSV 文件
二維列表是“列表的列表”,適合表示表格數據(如包含表頭和多行記錄),每個內部列表對應 CSV 的一行。
二維列表輸出為 CSV 格式的 Python 代碼:
from spire.xls import *
from spire.xls.common import *
# 初始化工作簿與工作表
workbook = Workbook()
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("二維列表")
# 示例二維列表(含表頭和數據)
data = [
["姓名", "年齡", "城市", "員工號"],
["小張", 30, "北京", 1001],
["小王", 25, "廣東", 1069],
["小李", 35, "天津", 2078],
["小孫", 28, "武漢", 2692]
]
# 雙層循環寫入行和列
for row_idx, row_data in enumerate(data):
for col_idx, cell_data in enumerate(row_data):
# 轉換為字符串確保兼容性
worksheet.Range[row_idx+1, col_idx+1].Value = str(cell_data)
# 保存為CSV
workbook.SaveToFile("二維列表.csv", FileFormat.CSV)
workbook.Dispose()
關鍵説明:
- 適合結構化表格數據(帶表頭);
- 通過嵌套循環遍歷行和列;
- 所有值轉為字符串,避免數據類型衝突。
輸出效果:

擴展技巧:生成的 CSV 可以 轉換為 PDF 用於安全展示,或轉換為 JSON 用於 Web/API 數據交換。
Python 將字典列表導出為 CSV 文件
字典列表(如 [{"姓名": "小張", "年齡": 30}, ...])適合處理帶字段名的數據,字典的鍵作為 CSV 表頭,值作為行數據。
字典列表輸出為 CSV 格式的 Python 代碼:
from spire.xls import *
from spire.xls.common import *
# 初始化工作簿與工作表
workbook = Workbook()
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("字典列表")
# 示例字典列表
customer_list = [
{"客户ID": 101, "姓名": "小張", "郵箱": "zhang@example.com
document.getElementById('cloak4c6b695d14e123b28d762dfe5791389e').innerHTML = '';
var prefix = 'ma' + 'il' + 'to';
var path = 'hr' + 'ef' + '=';
var addy4c6b695d14e123b28d762dfe5791389e = 'zhang' + '@';
addy4c6b695d14e123b28d762dfe5791389e = addy4c6b695d14e123b28d762dfe5791389e + 'example' + '.' + 'com';
var addy_text4c6b695d14e123b28d762dfe5791389e = 'zhang' + '@' + 'example' + '.' + 'com';document.getElementById('cloak4c6b695d14e123b28d762dfe5791389e').innerHTML += '<a ' + path + '\'' + prefix + ':' + addy4c6b695d14e123b28d762dfe5791389e + '\'>'+addy_text4c6b695d14e123b28d762dfe5791389e+'<\/a>';
"},
{"客户ID": 102, "姓名": "小王", "郵箱": "wang@example.com
document.getElementById('cloak014772be6786c8a1655f25d7d3fe4819').innerHTML = '';
var prefix = 'ma' + 'il' + 'to';
var path = 'hr' + 'ef' + '=';
var addy014772be6786c8a1655f25d7d3fe4819 = 'wang' + '@';
addy014772be6786c8a1655f25d7d3fe4819 = addy014772be6786c8a1655f25d7d3fe4819 + 'example' + '.' + 'com';
var addy_text014772be6786c8a1655f25d7d3fe4819 = 'wang' + '@' + 'example' + '.' + 'com';document.getElementById('cloak014772be6786c8a1655f25d7d3fe4819').innerHTML += '<a ' + path + '\'' + prefix + ':' + addy014772be6786c8a1655f25d7d3fe4819 + '\'>'+addy_text014772be6786c8a1655f25d7d3fe4819+'<\/a>';
"},
{"客户ID": 103, "姓名": "小孫", "郵箱": "sun@example.com
document.getElementById('cloak8c1dbb75892e18ea2760fa760ed30c0f').innerHTML = '';
var prefix = 'ma' + 'il' + 'to';
var path = 'hr' + 'ef' + '=';
var addy8c1dbb75892e18ea2760fa760ed30c0f = 'sun' + '@';
addy8c1dbb75892e18ea2760fa760ed30c0f = addy8c1dbb75892e18ea2760fa760ed30c0f + 'example' + '.' + 'com';
var addy_text8c1dbb75892e18ea2760fa760ed30c0f = 'sun' + '@' + 'example' + '.' + 'com';document.getElementById('cloak8c1dbb75892e18ea2760fa760ed30c0f').innerHTML += '<a ' + path + '\'' + prefix + ':' + addy8c1dbb75892e18ea2760fa760ed30c0f + '\'>'+addy_text8c1dbb75892e18ea2760fa760ed30c0f+'<\/a>';
"}
]
# 提取表頭並寫入第1行(若列表非空)
if customer_list:
headers = list(customer_list[0].keys())
# 寫入表頭
for col_idx, header in enumerate(headers):
worksheet.Range[1, col_idx+1].Value = str(header)
# 寫入數據行(從第2行開始)
for row_idx, record in enumerate(customer_list):
for col_idx, header in enumerate(headers):
# 安全獲取值,缺失鍵時用空字符串
value = record.get(header, "")
worksheet.Range[row_idx+2, col_idx+1].Value = str(value)
# 保存為CSV
workbook.SaveToFile("字典列表.csv", FileFormat.CSV)
workbook.Dispose()
關鍵説明:
- 表頭從第一個字典的鍵中提取;
- 使用 record.get(header, "") 處理可能的缺失鍵;
- 嚴格按表頭順序排列列,確保數據對齊。
輸出效果:
進階:自定義分隔符與編碼
Spire.XLS 支持靈活設置 CSV 文件的分隔符(默認逗號)和編碼,適配不同地區或系統需求。通過 Worksheet.SaveToFile() 方法的參數指定:
# 分號分隔(歐洲常用),UTF-8編碼
worksheet.SaveToFile("分號分隔.csv", ";", Encoding.get_UTF8())
# 製表符分隔,UTF-8編碼
worksheet.SaveToFile("製表符分隔.csv", "\t", Encoding.get_UTF8())
# 逗號分隔,Unicode編碼
worksheet.SaveToFile("Unicode編碼.csv", ",", Encoding.get_Unicode())
總結
藉助 Spire.XLS for Python,無論是簡單的一維列表、結構化的二維列表,還是帶字段名的字典列表,都能高效導出到 CSV 文件。只需根據數據結構選擇對應方法,即可確保轉換準確、輸出專業。
常見問題解答
1. 導出列表到 CSV 格式的最佳實踐是什麼?
- 轉換前驗證數據格式(如缺失值、異常類型);
- 用 try-catch 塊捕獲異常(如文件權限錯誤);
- 大型數據集先通過樣本測試;
- 完成後調用 Dispose() 釋放資源。
2. 如何一次性導出多個列表到不同 CSV 文件?
通過循環遍歷列表字典,逐個保存:
lists = {
"水果": ["蘋果", "香蕉", "櫻桃"],
"分數": [85, 92, 78]
}
for name, data in lists.items():
wb = Workbook()
wb.Worksheets.Clear()
ws = wb.Worksheets.Add(name)
for i, val in enumerate(data):
ws.Range[i+1, 1].Value = str(val)
wb.SaveToFile(f"{name}.csv", FileFormat.CSV)
wb.Dispose()
3. 如何在 CSV 文件中格式化數字(如貨幣、小數)?
CSV 以文本存儲數字,需提前設置格式:
# 設置A1:A10為貨幣格式($1,234.56)
ws.Range["A1:A10"].NumberFormat = "$#,##0.00"
4. Spire.XLS for Python 支持哪些操作系統?
全平台支持,包括 Windows、macOS 和 Linux。
Spire.XLS for Python試用下載,請聯繫慧都科技
歡迎加入Spire技術交流Q羣(125237868),與更多小夥伴一起提升文檔開發技能~