Python使用openpyxl批量将Excel转换为CSV文件
本文介绍如何利用Python的openpyxl模块批量将Excel文件转换为CSV格式。程序遍历指定目录下的所有.xlsx文件,针对每个文件中的多个工作表分别生成独立的CSV文件。文件名遵循“原Excel名_工作表名.csv”的命名规则,通过嵌套循环逐行读取单元格数据并写入目标文件,实现高效的表格格式转换。
Python Excel转CSV程序概述
本文分享一个基于Python实现的Excel转CSV转换程序实例,供学习者参考。
转换需求与命名规则
具体需求如下:
- 利用第十二章介绍的openpyxl模块,编写程序读取当前工作目录下的所有Excel文件,并将其转换为CSV格式。
- 由于一个Excel文件可能包含多个工作表,程序需为每个工作表单独创建一个CSV文件。生成的CSV文件名格式应为<Excel文件名>_<表标题>.csv,其中<Excel文件名>指去除扩展名后的原始文件名,<表标题>取自Worksheet对象的title属性。
- 该程序涉及多层嵌套的for循环,整体代码框架结构如下所示:
for excelFile in os.listdir('.'):
# skip non-xlsx files, load the workbook object
for sheetname in wb.get_sheet_names():
#Loop through every sheet in the workbook
sheet = wb.get_sheet_by_name(sheetname)
# create the csv filename from the Excel filename and sheet title
# create the csv.writer object for this csv file
#loop through every row in the sheet
for rowNum in range(1, sheet.max_row + 1):
rowData = [] #append each cell to this list
# loop through each cell in the row
for colNum in range (1, sheet.max_column + 1):
#Append each cell's data to rowData
# write the rowData list to CSV file
csvFile.close()
测试环境准备
可从htttp://nostarch.com/automatestuff/下载excelSpreadseets.zip压缩包,将其解压至程序所在的目录中。利用这些示例文件可对程序进行测试验证。
实现思路与代码逻辑
实现思路如下:
- 基本按照题目提供的框架结构进行代码编写。
- 需准确理解英文题意,在此基础上即可快速完成程序开发。
核心代码实现
具体代码实现如下:
#! python3
import os, openpyxl, csv
for excelFile in os.listdir('.\\CSV'): #我将解压后的excel文件放入此文件夹
# 筛选出excel文件,创建工作表对象
if excelFile.endswith('.xlsx'):
wb = openpyxl.load_workbook('.\\CSV\\'+ excelFile)
for sheetName in wb.get_sheet_names():
#依次遍历工作簿中的工作表
sheet = wb.get_sheet_by_name(sheetName)
#根据excel文件名和工作表名创建csv文件名
#通过csv.writer创建csv file对象
basename = excelFile[0:-5] #将excel文件名进行切割,去掉文件名后缀.xlsx
File = open('{0}_{1}.csv'.format(basename,sheetName),'w') #新建csv file对象
csvFile = csv.writer(File) #创建writer对象
#csvFileWriter.writerow()
#遍历表中每行
for rowNum in range(1,sheet.max_row+1):
rowData = [] #防止每个单元格内容的列表
#遍历每行中的单元格
for colNum in range(1,sheet.max_column + 1):
#将每个单元格数据添加到rowData
rowData.append(sheet.cell(row = rowNum,column = colNum).value)
csvFile.writerow(rowData)
#将rowData列表写入到csv file
File.close()
运行结果与扩展资源
程序运行结果展示:

如需了解更多Python相关技巧,可参考本站专题:《Python操作Excel表格技巧总结》、《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》。
希望本文所述内容能对读者的Python编程实践有所帮助。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









