本文用python中openpyxl庫,封裝成excel數據的讀寫方法
from openpyxl import load_workbook from openpyxl.worksheet.worksheet import Worksheet class ExcelHandler(): def __init__(self,file): self.file=file def open_sheet(self,name) ->Worksheet :
#表示此函數的返回值,是一個這樣的類型,函數注解 wb=load_workbook(self.file)#通過屬性傳遞 sheet=wb[name] return sheet def header(self,sheet_name): '''獲取表頭''' sheet=self.open_sheet(sheet_name) headers=[] for i in sheet[1]: headers.append(i.value) return headers def read(self,sheet_name): '''讀取所有數據''' sheet=self.open_sheet(sheet_name) rows=list(sheet.rows)#得到所有的數據,包括表頭 data=[]#存取所有行的數據 for row in rows[1:]: row_data=[]#存取一行的數據 for cell in row:#取出單元格 row_data.append(cell.value)#把單元格的值存在一行的數據中 #列表轉字典,要和header zip data_dict=dict(zip(self.header(sheet_name),row_data)) data.append(data_dict)#把一行的值存在放所有行的數據中 print(data) return data @staticmethod def write(file,sheet_name,row,column,data): wb=load_workbook(file) sheet = wb[sheet_name]#獲取表單 cell = sheet.cell(row,column)#獲取單個單元格 cell.value = data#寫入值 wb.save(file)#保存 wb.close() if __name__ == '__main__': excel=ExcelHandler(r'D:\cases.xlsx') sheet=excel.read('Sheet1')