概述
最近在使用Python帮一些客户制作excel自动化操作时总不可避免的使用openyxl,很多的操作都是类似的,于是想将其封装起来,便于之后的使用。如果有读者有类似的想法和需求也可以联系评论告之,水平有限,错误欢迎指正。
easy_openyxl
''' easy_oepnyxl 主要是为了方便自己日常的使用openyxl,主要是用于封装解决一些简单的问题 -----》 1. 加载excel 2. 获取某一单元格内容 3. 获取某一行内容 4. 获取最大行数,列数 5. 写入内容 6. 获取某一列内容 author:wanghusheng date:2021/7/31 email:@.com 可帮助解决各种代码调试,环境配置,日常工作自动化,课程设计,毕业设计指导。 有兴趣可联系邮箱。* ''' import sys import os import openpyxl class HandleExcel: def __init__(self,path): self.path = path def load_excel(self): ''' 加载excel ''' open_excel = openpyxl.load_workbook(self.path)#拿到excel的所有内容 return open_excel def get_cols_value(self,sheetname,col_num): ''' 获取sheetname表中的col_num列的所有数据 :param sheetname: 表名 :param col_num: 列数 :return: list 该列内容的列表 ''' ws = self.load_excel()[sheetname] col_list = [] for col in ws.iter_cols(min_row=1, min_col = col_num-1,max_col=col_num, values_only=True): for cell in col: col_list.append(cell) return col_list def get_sheet_data(self,index=None): ''' :param index: excel中的第几个表,默认是第一个 :return: 获取表中的所有数据 ''' sheet_name = self.load_excel().sheetnames if index == None: index = 0 data = self.load_excel()[sheet_name[index]] return data def get_cell_value(self,row,cols): ''' 获取某一个单元格内容 ''' data = self.get_sheet_data().cell(row=row,column=cols) return data def get_rows(self): row = self.get_sheet_data().max_row return row def get_rows_value(self,row): ''' 获取某一行的内容 ''' row_list = [] for i in self.get_sheet_data()[row]: row_list.append(i.value) return row_list def write_to_excel(self,path: str, sheetStr, data, info=None): ''' 写入数据到excel :param path: 写入excel文件路径 :param sheetStr: 写入表名 :param info: 表头信息,默认为None 格式["第一列","第二列","第三列"] :param data: 数据信息 格式为[[]] list[list] :return: None ''' # 实例化一个workbook对象 workbook = openpyxl.Workbook() # 激活一个sheet sheet = workbook.active # 为sheet设置一个title sheet.title = sheetStr # 添加表头(不需要表头可以不用加) if info is not None: data.insert(0, list(info)) # 开始遍历数组 for row_index, row_item in enumerate(data): for col_index, col_item in enumerate(row_item): # 写入 sheet.cell(row=row_index + 1, column=col_index + 1, value=col_item) workbook.save(path) print('写入成功')
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/37621.html