當前位置:成語大全網 - 新華字典 - 如何把excel導入python並讀取內容

如何把excel導入python並讀取內容

讀取excel的庫很多pd庫、xlrd庫都可以。

例如

import xlrdfrom xlrd import xldate_as_tupleimport datetime'''xlrd中單元格的數據類型數字壹律按浮點型輸出,日期輸出成壹串小數,布爾型輸出0或1,所以我們必須在程序中做判斷處理轉換成我們想要的數據類型0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error'''class ExcelData(): # 初始化方法 def __init__(self, data_path, sheetname): #定義壹個屬性接收文件路徑 self.data_path = data_path # 定義壹個屬性接收工作表名稱 self.sheetname = sheetname # 使用xlrd模塊打開excel表讀取數據 self.data = xlrd.open_workbook(self.data_path) # 根據工作表的名稱獲取工作表中的內容(方式①) self.table = self.data.sheet_by_name(self.sheetname) # 根據工作表的索引獲取工作表的內容(方式②) # self.table = self.data.sheet_by_name(0) # 獲取第壹行所有內容,如果括號中1就是第二行,這點跟列表索引類似 self.keys = self.table.row_values(0) # 獲取工作表的有效行數 self.rowNum = self.table.nrows # 獲取工作表的有效列數 self.colNum = self.table.ncols # 定義壹個讀取excel表的方法 def readExcel(self): # 定義壹個空列表 datas = [] for i in range(1, self.rowNum): # 定義壹個空字典 sheet_data = {} for j in range(self.colNum): # 獲取單元格數據類型 c_type = self.table.cell(i,j).ctype # 獲取單元格數據 c_cell = self.table.cell_value(i, j) if c_type == 2 and c_cell % 1 == 0: # 如果是整形 c_cell = int(c_cell) elif c_type == 3: # 轉成datetime對象 date = datetime.datetime(*xldate_as_tuple(c_cell,0)) c_cell = date.strftime('%Y/%d/%m %H:%M:%S') elif c_type == 4: c_cell = True if c_cell == 1 else False sheet_data[self.keys[j]] = c_cell # 循環每壹個有效的單元格,將字段與值對應存儲到字典中 # 字典的key就是excel表中每列第壹行的字段 # sheet_data[self.keys[j]] = self.table.row_values(i)[j] # 再將字典追加到列表中 datas.append(sheet_data) # 返回從excel中獲取到的數據:以列表存字典的形式返回 return datasif __name__ == "__main__": data_path = "ttt.xlsx" sheetname = "Sheet1" get_data = ExcelData(data_path, sheetname) datas = get_data.readExcel() print(datas)