对openxyl的封装,easy_openxyl 用python更便捷快速的操作excel

概述

最近在使用Python帮一些客户制作excel自动化操作时总不可避免的使用openyxl,很多的操作都是类似的,于是想将其封装起来,便于之后的使用。如果有读者有类似的想法和需求也可以联系评论告之,水平有限,错误欢迎指正。

easy_openyxl

'''
easy_oepnyxl

主要是为了方便自己日常的使用openyxl,主要是用于封装解决一些简单的问题
-----》
1. 加载excel
2. 获取某一单元格内容
3. 获取某一行内容
4. 获取最大行数,列数
5. 写入内容
6. 获取某一列内容

author:wanghusheng
date:2021/7/31
email:1246529696@qq.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('写入成功')
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不冬眠的小钱学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值