当前位置: 首页 > news >正文

国产化Excel开发组件Spire.XLS教程:使用Python将CSV文件转换为列表

CSV(逗号分隔值)是一种用于存储表格数据的通用文件格式,而列表是 Python 中用于轻松进行数据操作的基本数据结构。在 Python 中将 CSV 转换为列表,能实现数据的无缝处理、分析及与其他工作流的集成。虽然 Python 内置的 csv 模块可满足基础需求,但 Spire.XLS for Python 凭借类电子表格的直观界面,能更简化结构化 CSV 数据的处理流程。

本文将通过实用代码示例介绍如何使用 Python 读取 CSV 并转化为列表,覆盖从基础到进阶的各类场景。

Spire.XLS for Python试用下载,请联系官方授权代理商慧都科技

欢迎加入Spire技术交流Q群(125237868),与更多小伙伴一起提升文档开发技能~

为何选择 Spire.XLS ?

Spire.XLS 是一款强大的电子表格处理库,在 CSV 处理方面优势显著:

  • 直观的索引:行列索引均从1开始(与电子表格逻辑一致)。
  • 灵活的分隔符:可轻松指定自定义分隔符(逗号、制表符、分号等均可)。
  • 结构化访问:将 CSV 数据视为工作表,行列遍历更简单直接。
  • 强大的数据处理:自动解析数字、日期、字符串等类型,无需额外编写解析代码。

安装步骤

开始前,通过 pip 安装Spire.XLS for Python:

pip install Spire.XLS

该命令会安装最新稳定版本,安装完成后即可直接在项目中使用。

基础转换:Python 将 CSV 转换为列表

若 CSV 文件无标题行(纯数据行),Spire.XLS 可直接读取行数据并将其转换为“列表的列表”(每个子列表对应 CSV 中的一行)。

操作步骤:

  1. 导入 Spire.XLS 模块;
  2. 创建 Workbook 对象并加载 CSV 文件;
  3. 获取第一个工作表(Spire.XLS 会自动将 CSV 解析为工作表);
  4. 遍历行和单元格,提取值并存入 Python 列表。

CSV 转列表的 Python 代码示例:

from spire.xls import *
from spire.xls.common import *# 初始化工作簿并加载 CSV 文件
workbook = Workbook()
workbook.LoadFromFile("数据.csv", ",")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 初始化列表用于存储转换后的数据
data_list = []
# 遍历工作表的每一行
for i in range(sheet.Rows.Length):row = []  # 存储当前行的数据# 遍历当前行的每一列for j in range(sheet.Columns.Length):cell_value = sheet.Range[i + 1, j + 1].Valuerow.append(cell_value)data_list.append(row)  # 将当前行数据加入总列表# 打印转换结果
for row in data_list:print(row)# 释放资源
workbook.Dispose()

输出效果:

进阶操作:将 CSV 转换为字典列表

对于含标题行的CSV文件,转换为“字典列表”(键为标题、值为行数据)更便于数据操作。

CSV 转字典列表的 Python 代码示例:

from spire.xls import *# 初始化工作簿并加载CSV文件
workbook = Workbook()
workbook.LoadFromFile("示例.csv", ",")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 提取标题行(第一行数据作为字典的键)
headers = []
for j in range(sheet.Columns.Length):headers.append(sheet.Range[1, j + 1].Value)  # 1基索引取第一行# 初始化列表用于存储字典
dict_list = []
# 遍历数据行(从第二行开始,跳过标题行)
for i in range(1, sheet.Rows.Length):row_dict = {}  # 存储当前行的键值对for j in range(sheet.Columns.Length):key = headers[j]  # 标题作为键value = sheet.Range[i + 1, j + 1].Value  # 当前单元格值作为值row_dict[key] = valuedict_list.append(row_dict)  # 将字典加入列表# 打印转换结果
for record in dict_list:print(record)# 释放资源
workbook.Dispose()

代码说明:

  • 加载CSV:通过 Workbook 类的 LoadFromFile() 方法加载文件,指定分隔符;
  • 提取标题:将工作表第一行数据作为字典的键,保留列的含义;
  • 映射行到字典:遍历数据行时,用标题作为键、单元格内容作为值,构建字典并加入列表。

输出效果:

特殊场景处理

含自定义分隔符的 CSV(如制表符、分号)

处理非逗号分隔的 CSV 文件(如制表符分隔的 TSV 文件)时,只需在 LoadFromFile 中指定分隔符:

# 加载制表符分隔的文件(TSV)
workbook.LoadFromFile("data.tsv", "\t")# 加载分号分隔的文件(常见于欧洲地区数据)
workbook.LoadFromFile("data_eu.csv", ";")

空值清理技巧

CSV 中的空单元格会被转换为空字符串('')。若需将空值替换为自定义内容(如 “N/A”),可修改单元格值提取逻辑:

# 为空值设置默认值“N/A”
cell_value = sheet.Range[i + 1, j + 1].Value or "N/A"

总结

使用 Spire.XLS 在 Python 中将 CSV 转换为列表的方法十分高效、灵活且对初学者友好。无论您需要“列表的列表”存储原始数据,还是“字典列表”用于结构化分析,该库都能高效处理解析、索引及资源管理。通过本文示例,你可轻松将此转换集成到数据管道、分析脚本或应用程序中。

Spire.XLS for Python试用下载,请联系官方授权代理商慧都科技

欢迎加入Spire技术交流Q群(125237868),与更多小伙伴一起提升文档开发技能~

常见问题解答

Q1:Spire.XLS 是否适用于大型 CSV 文件?

A: 是的,Spire.XLS 能高效处理大型文件。但对于超大规模数据集(数百万行),建议分块处理或结合大数据工具;对于常规业务数据,其性能表现优异。

Q2:与 pandas 相比,用 Spire.XLS 转换 CSV 到列表有何优势?

A: Spire.XLS 提供了对解析过程更多的控制,并且不需要额外的数据科学依赖。虽然 pandas 非常适合分析,但当您需要精确控制 CSV 解析或在没有 pandas 的环境中工作时,Spire.XLS 是理想选择。

Q3:转换为列表时,如何处理带有标题的 CSV 文件?

A: 推荐使用“字典列表”转换法:提取第一行作为标题(字典的键),后续行数据作为值,既能保留列含义,又便于通过列名访问数据。

Q4:如何仅将 CSV 中的特定列转换为列表?

A: 可通过指定目标列索引修改内循环逻辑:

# 仅转换第1列和第3列(对应索引0和2)
target_columns = [0, 2]
for i in range(sheet.Rows.Length):row = []for j in target_columns:cell_value = sheet.Range[i + 1, j + 1].Valuerow.append(cell_value)data_list.append(row)
http://www.gsyq.cn/news/52861.html

相关文章:

  • 2025年11月南昌消防维保公司推荐评测:多场景需求适配与实操指南
  • 2025年11月不锈钢精密铸造厂家评价:详析各企业优势与适用场景
  • 2025年食堂承包服务十大推荐榜单:专业选择指南
  • 2025年11月不锈钢精密铸造厂家排行与选购要点全指南
  • 2025年国内靠谱的石笼网供应商口碑推荐榜,双隔板石笼网/六角石笼网/柔韧抗压石笼网/锌铝合金石笼网/镀锌低碳钢丝石笼网源头厂家怎么选择
  • 2025 年 11 月飞猪酒店、北京、三亚、深圳、成都、上海迪士尼旅行优惠指南:精选酒店预定优惠口令码!
  • AI元人文价值原语化理论体系研究报告——声明AI研究
  • AlmaLinux 9.7 正式版发布 - RHEL 二进制兼容免费发行版
  • 2025 最新推荐!铜编织带厂家优选指南,聚焦定制服务与品质标杆最新推荐铜编织带/镀锡铜编织带公司推荐
  • html css 创建 ToolTip 笔记
  • LVDS接口总结--(0)LVDS硬件电路接口 - 指南
  • 7-zip解压压缩包乱码
  • 2025 年 11 月不锈钢立柱厂家推荐排行榜,304/拉丝/护栏/定制不锈钢立柱,不锈钢立柱圆管/扶手,异形/焊接/喷涂不锈钢立柱,玻璃栏杆不锈钢公司推荐
  • 2025年比较好的油漆除味剂厂家最新TOP排行榜
  • OpenEuler安装Redis
  • 2025年浙江仿真培训公司权威推荐榜:热设计热仿真培训/STARCCM+仿真培训/NX二次开发培训标杆企业精选
  • 2025年石棉橡胶板厂家联系电话推荐:核心企业与联系方式
  • 2025年评价高的pp波纹管设备厂家推荐及选择指南
  • 2025年评价高的ppl塑料管材设备厂家最新权威实力榜
  • 2025年口碑好的隧道炉商用全自动款厂家推荐及选购指南
  • K8S集群怎么强制删除Pod
  • 2025年靠谱的层式商用烤箱厂家推荐及选择参考
  • MATLAB实现基于双字典交叉稀疏表示的SAR图像变化检测
  • 数字化转型新范式:吱吱企业即时通讯软件重塑中小微企业生产力
  • Java中需要对异常进行捕获或抛出的场景 - -dokingone
  • 2025年不锈钢精密铸造厂家联系电话推荐:区域分布与特点介绍
  • 2025年热门的岩板餐桌行业内知名厂家排行榜
  • 第12周 预习、实验与作业:Java并发编程
  • 2025年靠谱的圆形电梯家用TOP实力厂家推荐榜
  • 2025 年 11 月五金件厂家推荐排行榜,不锈钢五金件,家具五金件,精密五金件,汽车五金件,橱柜五金件公司推荐