当我们处理数据时,使用 CSV 文件很常见,但如果涉及到数据共享、可视化和大规模分析方面,Excel(XLSX)往往具有更多优势。本文将为你介绍如何使用 Python 转换 CSV 为 Excel,涵盖单个文件和批量转换两种方法。无论是需要自动生成报表,还是为后续分析做数据准备,都能通过本指南高效完成转换。
为什么要将 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 结果文档预览:
温馨提示: 如果你只是处理小文件或进行简单测试,也可以使用免费的 Spire.XLS 版本,它是一个不错的入门选择。
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 相关的任务,欢迎随时该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取免费 30 天试用授权!
CSV 转 Excel 常见问题解答
Q1:如何在 Python 中不使用 pandas 将 CSV 转换为 Excel?
A:你可以使用 Spire.XLS、openpyxl 或 xlsxwriter 等库来实现,无需依赖 pandas。这些工具提供了简单的 API 来加载 .csv 文件并导出为 .xlsx,而且不需要安装 Microsoft Excel。
Q2:在 Python 中批量将多个 CSV 文件转换为 Excel 最简单的方法是什么?
A:将所有 CSV 文件放到同一个文件夹中,然后在 Python 中遍历这些文件,并使用 Workbook.SaveToFile()方法逐一转换即可。这种方式非常适合批量处理。对于偶尔转换的情况,也可以使用在线转换工具。
Q3:如何在 CSV 转 Excel 时自动调整列宽?
A:加载 CSV 文件后,在保存 Excel 之前调用 Spire.XLS 的 Worksheet.AutoFitColumns()方法,就能根据内容自动调整列宽。