国产化Excel开发组件Spire.XLS教程:使用Python将CSV文件转换为列表
<p>CSV(逗号分隔值)是一种用于存储表格数据的通用文件格式,而列表是 Python 中用于轻松进行数据操作的基本数据结构。<strong>在 Python 中将 CSV 转换为列表</strong>,能实现数据的无缝处理、分析及与其他工作流的集成。虽然 Python 内置的 csv 模块可满足基础需求,但 <strong>Spire.XLS for Python</strong><strong> </strong>凭借类电子表格的直观界面,能更简化结构化 CSV 数据的处理流程。</p><p>本文将通过实用代码示例介绍如何<strong>使用 Python 读取 CSV 并转化为列表</strong>,覆盖从基础到进阶的各类场景。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire.XLS for Python试用下载,请联系官方授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>欢迎加入Spire技术交流Q群(125237868),与更多小伙伴一起提升文档开发技能~</strong></span></p>
<h2>为何选择 Spire.XLS ?</h2>
<p><strong>Spire.XLS </strong>是一款强大的电子表格处理库,在 CSV 处理方面优势显著:</p>
<ul>
<li><strong>直观的索引</strong>:行列索引均从1开始(与电子表格逻辑一致)。</li>
<li><strong>灵活的分隔符</strong>:可轻松指定自定义分隔符(逗号、制表符、分号等均可)。</li>
<li><strong>结构化访问</strong>:将 CSV 数据视为工作表,行列遍历更简单直接。</li>
<li><strong>强大的数据处理</strong>:自动解析数字、日期、字符串等类型,无需额外编写解析代码。</li>
</ul>
<p><strong>安装步骤</strong></p>
<p>开始前,通过 pip 安装Spire.XLS for Python:</p>
<pre class="prettyprint highlighter-hljs"><code>pip install Spire.XLS</code></pre>
<p>该命令会安装最新稳定版本,安装完成后即可直接在项目中使用。</p>
<h2>基础转换:Python 将 CSV 转换为列表</h2>
<p>若 CSV 文件无标题行(纯数据行),<strong>Spire.XLS </strong>可直接读取行数据并将其转换为“列表的列表”(每个子列表对应 CSV 中的一行)。</p>
<p><strong>操作步骤:</strong></p>
<ol>
<li>导入 Spire.XLS 模块;</li>
<li>创建 Workbook 对象并加载 CSV 文件;</li>
<li>获取第一个工作表(Spire.XLS 会自动将 CSV 解析为工作表);</li>
<li>遍历行和单元格,提取值并存入 Python 列表。</li>
</ol>
<p><strong>CSV 转列表的 Python 代码示例:</strong></p>
<pre class="prettyprint lang-py highlighter-hljs"><code>from spire.xls import *
from spire.xls.common import *
# 初始化工作簿并加载 CSV 文件
workbook = Workbook()
workbook.LoadFromFile("数据.csv", ",")
# 获取第一个工作表
sheet = workbook.Worksheets
# 初始化列表用于存储转换后的数据
data_list = []
# 遍历工作表的每一行
for i in range(sheet.Rows.Length):
row = []# 存储当前行的数据
# 遍历当前行的每一列
for j in range(sheet.Columns.Length):
cell_value = sheet.Range.Value
row.append(cell_value)
data_list.append(row)# 将当前行数据加入总列表
# 打印转换结果
for row in data_list:
print(row)
# 释放资源
workbook.Dispose()</code></pre>
<p>输出效果:<img src="https://image.evget.com/attachment/keditor/image/20251118/094603_8.png"></p>
<h2>进阶操作:将 CSV 转换为字典列表</h2>
<p>对于含标题行的CSV文件,转换为“字典列表”(键为标题、值为行数据)更便于数据操作。</p>
<p><strong>CSV 转字典列表的 Python 代码示例:</strong></p>
<pre class="prettyprint lang-py highlighter-hljs"><code>from spire.xls import *
# 初始化工作簿并加载CSV文件
workbook = Workbook()
workbook.LoadFromFile("示例.csv", ",")
# 获取第一个工作表
sheet = workbook.Worksheets
# 提取标题行(第一行数据作为字典的键)
headers = []
for j in range(sheet.Columns.Length):
headers.append(sheet.Range.Value)# 1基索引取第一行
# 初始化列表用于存储字典
dict_list = []
# 遍历数据行(从第二行开始,跳过标题行)
for i in range(1, sheet.Rows.Length):
row_dict = {}# 存储当前行的键值对
for j in range(sheet.Columns.Length):
key = headers# 标题作为键
value = sheet.Range.Value# 当前单元格值作为值
row_dict = value
dict_list.append(row_dict)# 将字典加入列表
# 打印转换结果
for record in dict_list:
print(record)
# 释放资源
workbook.Dispose()</code></pre>
<p><strong>代码说明:</strong></p>
<ul>
<li><strong>加载CSV</strong>:通过 Workbook 类的 LoadFromFile() 方法加载文件,指定分隔符;</li>
<li><strong>提取标题</strong>:将工作表第一行数据作为字典的键,保留列的含义;</li>
<li><strong>映射行到字典</strong>:遍历数据行时,用标题作为键、单元格内容作为值,构建字典并加入列表。</li>
</ul>
<p><strong>输出效果:</strong></p>
<p><img src="https://image.evget.com/attachment/keditor/image/20251118/094643_8.png"></p>
<h2>特殊场景处理</h2>
<h3>含自定义分隔符的 CSV(如制表符、分号)</h3>
<p>处理非逗号分隔的 CSV 文件(如制表符分隔的 TSV 文件)时,只需在 LoadFromFile 中指定分隔符:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code># 加载制表符分隔的文件(TSV)
workbook.LoadFromFile("data.tsv", "\t")
# 加载分号分隔的文件(常见于欧洲地区数据)
workbook.LoadFromFile("data_eu.csv", ";")</code></pre>
<h3>空值清理技巧</h3>
<p>CSV 中的空单元格会被转换为空字符串('')。若需将空值替换为自定义内容(如 “N/A”),可修改单元格值提取逻辑:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code># 为空值设置默认值“N/A”
cell_value = sheet.Range.Value or "N/A"</code></pre>
<h2>总结</h2>
<p>使用<strong> Spire.XLS 在 Python </strong>中将 CSV 转换为列表的方法十分高效、灵活且对初学者友好。无论您需要“列表的列表”存储原始数据,还是“字典列表”用于结构化分析,该库都能高效处理解析、索引及资源管理。通过本文示例,你可轻松将此转换集成到数据管道、分析脚本或应用程序中。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire.XLS for Python试用下载,请联系官方授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>欢迎加入Spire技术交流Q群(125237868),与更多小伙伴一起提升文档开发技能~</strong></span></p>
<h2>常见问题解答</h2>
<h3>Q1:Spire.XLS 是否适用于大型 CSV 文件?</h3>
<p><strong>A:</strong> 是的,<strong>Spire.XLS </strong>能高效处理大型文件。但对于超大规模数据集(数百万行),建议分块处理或结合大数据工具;对于常规业务数据,其性能表现优异。</p>
<h3>Q2:与 pandas 相比,用 Spire.XLS 转换 CSV 到列表有何优势?</h3>
<p><strong>A:</strong> Spire.XLS 提供了对解析过程更多的控制,并且不需要额外的数据科学依赖。虽然 pandas 非常适合分析,但当您需要精确控制 CSV 解析或在没有 pandas 的环境中工作时,Spire.XLS 是理想选择。</p>
<h3>Q3:转换为列表时,如何处理带有标题的 CSV 文件?</h3>
<p><strong>A:</strong> 推荐使用“字典列表”转换法:提取第一行作为标题(字典的键),后续行数据作为值,既能保留列含义,又便于通过列名访问数据。</p>
<h3>Q4:如何仅将 CSV 中的特定列转换为列表?</h3>
<p><strong>A:</strong> 可通过指定目标列索引修改内循环逻辑:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code># 仅转换第1列和第3列(对应索引0和2)
target_columns =
for i in range(sheet.Rows.Length):
row = []
for j in target_columns:
cell_value = sheet.Range.Value
row.append(cell_value)
data_list.append(row)</code></pre><br><br>
来源:https://www.cnblogs.com/software-Development/p/19236287
頁:
[1]