溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中如何實現(xiàn)Excel到CSV的轉(zhuǎn)換程序

發(fā)布時間:2021-08-03 12:00:04 來源:億速云 閱讀:154 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Python中如何實現(xiàn)Excel到CSV的轉(zhuǎn)換程序,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

題目如下:

  • 利用第十二章的openpyxl模塊,編程讀取當(dāng)前工作目錄中的所有Excel文件,并輸出為csv文件。

  • 一個Excel文件可能包含多個工作表,必須為每個表創(chuàng)建一個CSV文件。CSV文件的文件名應(yīng)該是<Excel 文件名>_<表標(biāo)題>.csv,其中< Excel 文件名 >是沒有拓展名的Excel文件名,<表標(biāo)題>是Worksheet對象的title變量中的字符串

  • 該程序包含許多嵌套的for循環(huán)。該程序框架看起來像這樣:

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,將這些電子表格壓縮到程序所在目錄中。可以使用這些文件來測試程序

思路如下:

  • 基本上按照題目給定的框架進行代碼的編寫

  • 對英文進行翻譯,理解意思即可快速編寫出程序

代碼如下:

#! python3
import os, openpyxl, csv
for excelFile in os.listdir('.\\CSV'): #我將解壓后的excel文件放入此文件夾
  # 篩選出excel文件,創(chuàng)建工作表對象
  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文件名
      #通過csv.writer創(chuàng)建csv file對象
      basename = excelFile[0:-5] #將excel文件名進行切割,去掉文件名后綴.xlsx
      File = open('{0}_{1}.csv'.format(basename,sheetName),'w') #新建csv file對象
      csvFile = csv.writer(File) #創(chuàng)建writer對象
      #csvFileWriter.writerow()
      #遍歷表中每行
      for rowNum in range(1,sheet.max_row+1):
        rowData = [] #防止每個單元格內(nèi)容的列表
        #遍歷每行中的單元格
        for colNum in range(1,sheet.max_column + 1):
          #將每個單元格數(shù)據(jù)添加到rowData
          rowData.append(sheet.cell(row = rowNum,column = colNum).value)
        csvFile.writerow(rowData)
        #將rowData列表寫入到csv file
      File.close()

運行結(jié)果:

Python中如何實現(xiàn)Excel到CSV的轉(zhuǎn)換程序

以上是“Python中如何實現(xiàn)Excel到CSV的轉(zhuǎn)換程序”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI