标签:__init__ name == init 获取 单元 分享 color span
python3+openpyxl操作excel(xlsx)学习分享,如有问题请大佬指教!
代码如下:
1 import openpyxl 2 3 class DoExcel: 4 """操作excel类:xlsx格式文件 5 file:文件名及路径 6 sheet:表单名""" 7 def __init__(self,file,sheet): 8 self.file=file 9 self.sheet=sheet 10 self.wb=openpyxl.load_workbook(self.file) 11 self.ws=self.wb[self.sheet] 12 13 #获取总行数 14 def get_maxrow(self): 15 return self.ws.max_row 16 17 #获取总列数 18 def get_maxcol(self): 19 return self.ws.max_column 20 21 #获取某个单元格数据 22 def get_cell_data(self,row,col): 23 return self.ws.cell(row,col).value 24 25 #获取某一行数据 26 def get_row_data(self,row): 27 row_data=[] 28 for i in range(1,self.get_maxcol()+1): 29 row_data.append(self.ws.cell(row,i).value) 30 return row_data 31 32 #获取某一列数据 33 def get_col_data(self,col): 34 col_data=[] 35 for i in range(1,self.get_maxrow()+1): 36 col_data.append(self.ws.cell(i,col).value) 37 return col_data 38 39 #获取所有数据(存储:列表嵌套列表) 40 def get_all_data(self): 41 all_data=[] 42 row_data=[] 43 for i in range(1,self.get_maxrow()+1): 44 for j in range(1,self.get_maxcol()+1): 45 row_data.append(self.ws.cell(i,j).value) 46 all_data.append(row_data) 47 return all_data 48 49 #向单元格写数据 50 def write_cell_data(self,row,col,value): 51 self.ws.cell(row,col).value=value 52 self.wb.save(self.file) 53 54 if __name__ == ‘__main__‘: 55 file=‘脱敏检测规则测试结果.xlsx‘ 56 sheet=‘Sheet1‘ 57 print("%s文件%s表单总行数为:%d" %(file,sheet,DoExcel(file,sheet).get_maxrow())) 58 print("%s文件%s表单总列数为:%d" % (file, sheet,DoExcel(file,sheet).get_maxcol())) 59 print("%s文件%s表单第三行第四列数据为:%s" % (file, sheet, DoExcel(file,sheet).get_cell_data(3,4))) 60 print("%s文件%s表单第五行数据为:%s" % (file, sheet, DoExcel(file,sheet).get_row_data(5))) 61 print("%s文件%s表单第六列数据为:%s" % (file, sheet, DoExcel(file,sheet).get_col_data(6))) 62 print("%s文件%s表单所有数据为:%s" % (file, sheet, DoExcel(file,sheet).get_all_data())) 63 print("%s文件%s表单第50行第10列写数据" % (file, sheet)),DoExcel(file, sheet).write_cell_data(50,10,"test写数据")
2、python3+openpyxl操作excel(xlsx)
标签:__init__ name == init 获取 单元 分享 color span
原文地址:https://www.cnblogs.com/xulg0702/p/14867313.html