一、需求分析
将Excel文件转换为CSV格式是非常常见的需求。Python脚本实现Excel到CSV的转换可以方便地将Excel文件批量转换为CSV格式。Python中有许多库可以用来实现Excel到CSV格式转换,比如pandas和openpyxl。其中,pandas支持将多个Sheet页合并为一个CSV文件,而openpyxl则可以输出每个Sheet页的CSV文件。
二、pandas库实现Excel到CSV格式转换
使用pandas库实现Excel到CSV的转换需要安装pandas库。安装方法可以使用pip命令行工具安装,如下所示:
pip install pandas
安装完成后,使用pandas库进行Excel到CSV的转换,主要的流程包括以下几个步骤:
- 导入pandas库。
- 读取Excel文件,使用pandas的read_excel()方法。
- 将Excel表转换为CSV格式,使用pandas的to_csv()方法。
- 将多个Sheet页转换为一个CSV文件,使用pandas的concat()方法。
以将Excel文件Sheet页合并为一个CSV文件为例:
import pandas as pd
# 读取Excel文件
xls_path = 'test.xls'
df = pd.read_excel(xls_path, sheet_name=None)
# 将Excel表转换为CSV格式
for sheet_name, df_sheet in df.items():
df_sheet.to_csv('{}.csv'.format(sheet_name))
# 将多个Sheet页转换为一个CSV文件
concat_df = pd.concat(df.values(), axis=0)
concat_df.to_csv('output.csv')
这段代码可以将Excel文件test.xls中的每个Sheet页分别转换为CSV文件,然后将所有Sheet页合并为一个output.csv文件。当只需要将每个Sheet页分别转换为CSV文件时,可以省略最后一条语句。
三、openpyxl库实现Excel到CSV格式转换
与pandas库不同,openpyxl库在Excel到CSV转换时只支持单个Sheet页的转换,每个Sheet页都需要分别转换。安装openpyxl库的方法与pandas库一样,使用pip命令行工具安装即可。
使用openpyxl库实现Excel到CSV的转换,主要的流程包括以下几个步骤:
- 导入openpyxl库。
- 读取Excel文件,打开Excel工作簿,获取Sheet页对象。
- 将Sheet页转换为CSV格式,使用openpyxl的csv模块。
以将Excel文件中的Sheet页单独转换为CSV文件为例:
import openpyxl
import csv
# 打开工作簿
wb_path = 'test.xlsx'
wb = openpyxl.load_workbook(wb_path)
# 获取Sheet页对象
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
# 将Sheet页转换为CSV格式
with open('{}.csv'.format(sheet_name), 'w', newline='') as f:
csv_writer = csv.writer(f)
for row in sheet.iter_rows(values_only=True):
csv_writer.writerow(row)
这段代码可以将Excel文件中的每个Sheet页分别转换为单独的CSV文件。
四、示例说明
以解释如何使用pandas库实现Excel到CSV格式转换为例,假设在Windows平台上有一个Excel文件名为test.xls,其中包含两个Sheet页,分别为Sheet1和Sheet2,要将这两个Sheet页分别保存为CSV格式。
- 首先,在Windows平台上安装好Python和pandas库。
- 创建一个新的.py文件,将上述代码复制到文件中。
- 打开Windows命令提示符窗口,将当前路径切换到.py文件所在的目录。
- 使用Python命令行工具运行.py文件,如下所示:
python filename.py
其中filename.py是.py文件的文件名。
- 运行完成后,当前路径下应该会生成Sheet1.csv和Sheet2.csv两个CSV文件。
可以发现,使用pandas库实现Excel到CSV格式转换非常方便,一次性将多个Sheet页转换为CSV格式也很省事。在数据量比较大或者需要进行数据处理时,pandas库的转换速度也非常快。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python脚本实现xls(xlsx)转成csv - Python技术站