Python編程快速上手——Excel到CSV的轉(zhuǎn)換程序案例分析
本文實(shí)例講述了Python Excel到CSV的轉(zhuǎn)換程序。分享給大家供大家參考,具體如下:
題目如下:
- 利用第十二章的openpyxl模塊,編程讀取當(dāng)前工作目錄中的所有Excel文件,并輸出為csv文件。
- 一個(gè)Excel文件可能包含多個(gè)工作表,必須為每個(gè)表創(chuàng)建一個(gè)CSV文件。CSV文件的文件名應(yīng)該是<Excel 文件名>_<表標(biāo)題>.csv,其中< Excel 文件名 >是沒(méi)有拓展名的Excel文件名,<表標(biāo)題>是Worksheet對(duì)象的title變量中的字符串
- 該程序包含許多嵌套的for循環(huán)。該程序框架看起來(lái)像這樣:
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/下載zip文件excelSpreadseets.zip,將這些電子表格壓縮到程序所在目錄中??梢允褂眠@些文件來(lái)測(cè)試程序
思路如下:
- 基本上按照題目給定的框架進(jìn)行代碼的編寫(xiě)
- 對(duì)英文進(jìn)行翻譯,理解意思即可快速編寫(xiě)出程序
代碼如下:
#! python3
import os, openpyxl, csv
for excelFile in os.listdir('.\\CSV'): #我將解壓后的excel文件放入此文件夾
# 篩選出excel文件,創(chuàng)建工作表對(duì)象
if excelFile.endswith('.xlsx'):
wb = openpyxl.load_workbook('.\\CSV\\'+ excelFile)
for sheetName in wb.get_sheet_names():
#依次遍歷工作簿中的工作表
sheet = wb.get_sheet_by_name(sheetName)
#根據(jù)excel文件名和工作表名創(chuàng)建csv文件名
#通過(guò)csv.writer創(chuàng)建csv file對(duì)象
basename = excelFile[0:-5] #將excel文件名進(jìn)行切割,去掉文件名后綴.xlsx
File = open('{0}_{1}.csv'.format(basename,sheetName),'w') #新建csv file對(duì)象
csvFile = csv.writer(File) #創(chuàng)建writer對(duì)象
#csvFileWriter.writerow()
#遍歷表中每行
for rowNum in range(1,sheet.max_row+1):
rowData = [] #防止每個(gè)單元格內(nèi)容的列表
#遍歷每行中的單元格
for colNum in range(1,sheet.max_column + 1):
#將每個(gè)單元格數(shù)據(jù)添加到rowData
rowData.append(sheet.cell(row = rowNum,column = colNum).value)
csvFile.writerow(rowData)
#將rowData列表寫(xiě)入到csv file
File.close()
運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python操作Excel表格技巧總結(jié)》、《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python針對(duì)Oracle常見(jiàn)查詢操作實(shí)例分析
這篇文章主要介紹了python針對(duì)Oracle常見(jiàn)查詢操作,結(jié)合實(shí)例形式分析了python針對(duì)Oracle常見(jiàn)的子查詢、多表查詢等相關(guān)原理、操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2020-04-04
Python偏函數(shù)Partial function使用方法實(shí)例詳解
這篇文章主要介紹了Python偏函數(shù)Partial function使用方法實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python?numpy下幾種fft函數(shù)的使用方式
numpy中有一個(gè)fft的庫(kù),scipy中也有一個(gè)fftpack的庫(kù),各自都有fft函數(shù),兩者的用法基本是一致的,下面這篇文章主要給大家介紹了關(guān)于Python?numpy下幾種fft函數(shù)的使用方式,需要的朋友可以參考下2022-08-08
Opencv-Python圖像透視變換cv2.warpPerspective的示例
今天小編就為大家分享一篇關(guān)于Opencv-Python圖像透視變換cv2.warpPerspective的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取
Python基于checksum計(jì)算文件是否相同的方法

