【Python】xlwt和xlrd模組寫入和讀取.xls版本EXCEL
阿新 • • 發佈:2018-12-22
我們經常與EXCEL打交道,其實我們可以使用python的相應模組去處理EXCEL檔案。2003以前的表格以.xls字尾,用xlwt來寫表格,用xlrd來讀取表格;搭配xlutils修改表格。2007的表格以.xlsx字尾,用openpyxl來讀寫表格。
def dict_to_list2(): class_list = [] #1.建立一個空的二維列表 for item in class_dict.items(): #2.獲取字典型別資料的字典項(dict-->tuple) a = item[1] #3.獲取元組的資料集合(tuple-->str,list) print("item[1]的資料型別:", type(a), a) #4.檢視元組的資料的型別 for list in a: #5.分別獲取元組的資料(str-->str,list-->dict) rows=[] for info in list: if info == 'courseName'or info == 'audioname' or info == 'pdfFileId' or info == 'learnStatus': rows.append(list[info]) #6.獲取字典型別資料的value存入到一維列表(dict-->str-->list) if rows: # 如果列表不為空 class_list.append(rows) # 二維列表存入資料 return(class_list) def writeExcel(file_path,class_list): wb = xlwt.Workbook() # 開啟一個空白excel sheet = wb.add_sheet("sample") # 新增一個sheet名叫sample for i in range(len(class_list)): print(class_list[i][0]) print(class_list[i][1]) print(class_list[i][2]) print(class_list[i][3]) sheet.write(i,0,class_list[i][0]) # 第i行第一列 sheet.write(i,1, class_list[i][1]) # 第i行第二列 sheet.write(i,2, class_list[i][2]) # 第i行第二列 sheet.write(i,3, class_list[i][3]) # 第i行第二列 wb.save(file_path) print("寫入表格成功!!!") if __name__ == '__main__': class_list2 = dict_to_list2() writeExcel("F:\SoftwareTest\sample.xls", class_list2)
以上是寫入到excel的情況,下面主要介紹一下如何讀取excel的資訊。
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #作者:cacho_37967865 #部落格:https://blog.csdn.net/sinat_37967865 #檔案:handelExcel.py #日期:2018-10-21 #備註:pip install xlwt, pip install xlrd, pip install xlutils,pip install openpyxl #模組分類:2003以前的表格以.xls字尾,用xlwt來寫表格,用xlrd來讀取表格;搭配xlutils修改表格 2007的表格以.xlsx字尾,用openpyxl來讀寫表格。 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' import os # 讀寫.xls結尾的03-07版本EXCEL import xlrd import xlwt from xlutils.copy import copy # 讀寫.xlsx結尾的07版本EXCEL import openpyxl def readExcel(folder): # 獲取指定目錄下面的所有檔案 files = os.listdir(folder) # 獲取xls型別的檔案放到一個列表裡面 xlsFiles = [f for f in files if f.endswith(".xls")] for xlsFile in xlsFiles: print(xlsFile) # 列印目標路徑下所有檔案 os.chdir(folder) # 切換到操作目錄 print("目錄地址為:" + os.getcwd()) # 列印當前目錄 data = xlrd.open_workbook(xlsFile) # 開啟excle文件讀取資料 table = data.sheets()[0] # 通過索引順序獲取 table2 = data.sheet_by_index(0) # 通過索引順序獲取 table3 = data.sheet_by_name('sample') # 通過名稱獲取 nrows = table.nrows # 獲取行數 ncols = table.ncols # 獲取列數 print(xlsFile,"檔案行數:",nrows) print(xlsFile,"檔案列數:",ncols) # 獲取具體單元格資料獲取 cell_A1 = table.cell(0, 0).value cell_C4 = table.cell(2, 3).value # print(cell_A1,cell_C4) # 使用行和列進行索引查詢 cell_A1 = table.row(0)[0].value cell_A2 = table.col(1)[0].value # print(cell_A1, cell_A2) # 資料型別判斷 ctype1 = table.cell(1, 1).ctype # 第一行第1列資料型別 ctype2 = table.cell(1, 2).ctype # 第一行第2列資料型別 print('資料型別:0-empty,1-string, 2-number, 3-date, 4-boolean, 5-error',ctype1,ctype2) for i in range(nrows): className = table.cell_value(i, 0) filename = table.cell_value(i, 1) print(className,filename) if __name__ == '__main__': readExcel("F:\SoftwareTest")
以上是讀取到EXCEL到控制檯的截圖。