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):更多推荐


所有评论(0)