国产化Excel开发组件Spire.XLS教程:Python 将 CSV 转换为 Excel(.XLSX)

翻译|行业资讯|编辑:吉炜炜|2025-08-28 10:25:47.530|阅读 6 次

概述:当我们处理数据时,使用 CSV 文件很常见,但如果涉及到数据共享、可视化和大规模分析方面,Excel(XLSX)往往具有更多优势。本文将为你介绍如何借助Spire.XLS使用 Python 转换 CSV 为 Excel,涵盖单个文件和批量转换两种方法。无论是需要自动生成报表,还是为后续分析做数据准备,都能通过本教程高效完成转换。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

当我们处理数据时,使用 CSV 文件很常见,但如果涉及到数据共享、可视化和大规模分析方面,Excel(XLSX)往往具有更多优势。

E-iceblue旗下Spire系列产品,是文档开发组件领域的佼佼者,支持国产化信创。本文将为你介绍如何借助Spire.XLS使用 Python 转换 CSV 为 Excel,涵盖单个文件和批量转换两种方法。无论是需要自动生成报表,还是为后续分析做数据准备,都能通过本教程高效完成转换。


Spire.XLS for Python试用下载

获取更多信息请咨询慧都在线客服  ;技术交流Q群(125237868

为什么要将 CSV 转换为 Excel?

由于 CSV 文件的结构较为简单,因此它在数据存储与交换中被广泛使用,但在格式设置、呈现效果和可用性方面存在不少限制。将 CSV 转换为 Excel 能带来多方面优势:

将 CSV 转换为 Excel 的优势

  • 更丰富的格式支持:Excel 提供字体、颜色、边框、单元格合并等多种格式设置,让数据更易阅读和展示。
  • 多工作表支持:CSV 只能包含单一工作表,而 Excel 文件可在同一文件中保存多个工作表,更适合处理大型数据集。
  • 内置公式与图表功能:可直接使用 Excel 公式、数据透视表和图表进行数据分析与可视化。
  • 更适合业务用户:Excel 是许多非技术用户的首选工具,便于数据共享与协作。

CSV 文件的局限性

  • 无样式和格式支持(仅限纯文本)。
  • 仅支持单工作表结构。
  • 容易出现编码问题(例如包含非英文字符时)。
  • 不适合大型数据集或复杂报表。如果你的工作流程涉及报表生成、数据分析或与他人共享数据,将 CSV 转换为 Excel 往往是更实用、更灵活的选择。

安装所需的 Python 库

本教程将使用 Spire.XLS for Python 来演示如何在 Python 中轻松转换 CSV 为 Excel,包括 .xlsx 和 .xls 格式。Spire.XLS 是一款功能强大且专业的 Python Excel 库,可在不依赖 Microsoft Excel 的情况下读取、编辑和转换 Excel 文件。

安装这个 CSV 转 Excel 工具非常简单,只需运行以下命令:

pip install Spire.XLS

此外,你也可以手动下载 Spire.XLS 安装包,进行自定义安装。

Python 将单个 CSV 文件转换为 Excel

接下来进入正题——如何在 Python 中将单个 CSV 文件转换为 Excel。有了 Spire.XLS,这个任务只需三步:创建新工作簿、加载 CSV 文件、将其保存为 Excel(.xlsx或.xls)文件。下面我们将结合完整代码示例为你详细讲解。

在 Python 中将单个 CSV 转换为 Excel 的步骤:

  • 创建一个 Workbook 实例。
  • 使用 Workbook.LoadFromFile() 方法加载示例 CSV 文件。
  • 通过 Workbook.SaveToFile() 方法将 CSV 保存为 Excel 文件。

下面的 Python 代码不仅实现了 CSV 转 Excel,还设置了忽略解析错误,并自动调整列宽以提升可读性:

from spire.xls import *
from spire.xls.common import *

# 创建一个 Workbook 对象
workbook = Workbook()

# 加载一个 CSV 文件
workbook.LoadFromFile("/input/人口土地.csv", ",", 1, 1)
  
# 设置忽略错误选项和自适应列宽
sheet = workbook.Worksheets[0]
sheet.Range["B2:D11"].IgnoreErrorOptions = IgnoreErrorType.NumberAsText
sheet.AllocatedRange.AutoFitColumns()  

# 将 CSV 文件保存为 Excel
workbook.SaveToFile("/output/CSV转Excel.xlsx", ExcelVersion.Version2013)
# 将 CSV 文件保存为.xls
#workbook.SaveToFile("/output/CSV转Excel11.xls", ExcelVersion.Version97to2003)
单个 CSV 文件转换为 Excel 结果文档预览:



Python 批量将 CSV 转换为 XLSX

另一种常见需求是将多个 CSV 文件批量转换为 Excel。与其在代码中手动修改文件路径和文件名,不如用更高效的方式:只需将所有 CSV 文件放在同一文件夹中,然后用 Python 遍历文件并调用 Workbook.SaveToFile() 方法就能成功将文件夹中所有 CSV 文件一次性转换为 Excel 文件。

在 Python 中批量将 CSV 转换为 Excel 的步骤如下:

  • 指定输入文件夹和输出文件夹的路径。
  • 遍历输入文件夹中的所有 CSV 文件。
  • 创建一个 Workbook 类的对象。
  • 使用 Workbook.LoadFromFile() 方法加载输入文件夹中的每个 CSV 文件。
  • 调用 Workbook.SaveToFile() 方法将当前 CSV 文件保存为 Excel 文件。

下面的 Python 代码示例演示了如何批量将 CSV 转换为 Excel(.XLSX):

import os
from spire.xls import *

input_folder = r"/input/CSV"
output_folder = r"/output/BatchConversion"

# 遍历所有 CSV 文件
for csv_file in os.listdir(input_folder):
    if csv_file.endswith(".csv"):
        input_path = os.path.join(input_folder, csv_file)
        output_name = os.path.splitext(csv_file)[0] + ".xlsx"
        output_path = os.path.join(output_folder, output_name)

        # 创建 Workbook 实例并加载 CSV 文件
        workbook = Workbook()
        workbook.LoadFromFile(input_path, ",", 1, 1)

        # 将每个 CSV 文件保存为 Excel 文件
        workbook.SaveToFile(output_path, ExcelVersion.Version2013)
下方是批量转换 CVS 为 Excel 文件的结果预览:



总结

本文通过分步讲解与完整代码示例,演示了如何在 Python 中将 CSV 转换为 Excel。无论是处理单个 CSV 文件,还是批量转换多个文件,Spire.XLS 都能让整个过程变得简单、高效、无忧。 如果你需要应对更复杂的场景,或处理其他与 Excel 相关的任务,欢迎联系我们获取免费 30 天试用授权!


————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询慧都在线客服  ;技术交流Q群(125237868




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP