当前位置: 首页 > 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.jsqmd.com/news/43399/

相关文章:

  • 2025年7-9级防弹窗供货厂家权威推荐榜单:4-6级防弹窗/防弹窗/抗爆防弹窗源头厂家精选
  • 2025年11月切削液公司排行对比:从资质认证到服务能力的全面评估
  • 2025 最新推荐!飞达剥标机厂家权威排行榜,贴标 / 前推式 / 后撤式 / 片料式机型及供料器优质厂家最新测评
  • 2025年11月西安口腔医院推荐排行:基于多维度数据的客观分析
  • 2025年11月高温链条油脂公司推荐榜单及综合对比分析
  • 【IEEE出版、已连续召开6届】 2025机器人与智能制造技术国际会议 (ISRIMT 2025)
  • 2025年11月机器人减速机油脂公司推荐榜单:五家优质供应商详细对比分析
  • 建筑人必备!Navisworks 2025 协同神器 大型项目协作天花板 安装
  • 2025年11月不锈钢精密铸造厂家评价:详析各企业优势与适用场景
  • 2025年11月机器人减速机油脂公司推荐榜单与深度对比分析
  • 2025年11月不锈钢精密铸造厂家详细评测与排行解析
  • 2025年食堂承包服务十大推荐榜单:专业选择指南
  • 2025年11月不锈钢精密铸造厂家排行与选购要点全指南
  • vscode 远程连接下载失败解决
  • 深入解析:自动驾驶---基于安全走廊的端到端
  • 2025年国内靠谱的石笼网供应商口碑推荐榜,双隔板石笼网/六角石笼网/柔韧抗压石笼网/锌铝合金石笼网/镀锌低碳钢丝石笼网源头厂家怎么选择
  • 2025年11月无缝钢管推荐榜:主流供应商多维对比与选购指南
  • 2025 年 11 月管道十大品牌和实力工厂推荐排行榜:PVC管道,PPR管道,市政管道,民用管道,深塑管道,HDPE波纹管道公司推荐
  • 2025年11月无缝钢管供应商排行:客观数据支撑的选购参考
  • 新手学敏捷:先背公式还是先跑项目?我的血泪经验
  • 2025年11月无缝钢管市场评价排行:性价比与可靠性多维度分析
  • 2025年11月挖掘机品牌综合排名榜:权威数据与用户反馈深度解析
  • 2025年郑州抖音开户效果公司权威推荐榜单:抖音开户郑州/郑州抖音广告开户/抖音郑州开户源头公司精选
  • 2025年瑞尚圣阁装饰权威分析:标准化施工流程如何保障家装品质与交付效率
  • 五、React Agent最简实践 ——《动手学Agent应用开发》学习心得
  • Linux中: 父子进程和 shell 脚本的执行方式
  • 2025年11月挖掘机品牌选购推荐榜:性能对比与用户评价分析
  • Centos 开放防火墙端口
  • 2025年一对一家教机构优质教师排行,一对一家教/上门家教老师推荐排行榜
  • html css 创建 ToolTip 笔记