Python-封装-excel-写

excel写的封装

import os

import openpyxl
from openpyxl.styles import Font


class Writer:
    def __init__(self):
        self.wb=None#工作簿
        self.filename=None#打开的文件名
        self.sh=None#工作表
#打开excel
    def open_excel(self,filename):
        if os.path.isfile(filename):
            if filename.endswith('xlsx'):
                self.wb=openpyxl.load_workbook(filename)
                self.filename=filename#将文件名保存在实例变量中,方便后面写保存方式时使用
                print('excel文件打开成功')
            else:
                print('文件名后缀不正确')
                return
        else:
            print('传入的参数不正确,请检查!')
            return


#指定要操作的sheet页
    def choose_sheet(self, sheet_name=None):
        '''
        选择要操作的sheet页
        :param sheet_name: sheet名称
        :return:
        '''
        if sheet_name is None:
            self.sh = self.wb.active
            # print(self.sh.title)
        else:
            if sheet_name in self.wb.sheetnames:
                self.sh = self.wb[sheet_name]
                # print(self.sh.title)
            else:
                print('您指定的sheet不存在!')
                return

#直接写入【行,列,值,样式】
    def write(self,row,col,value,size=20,color=None):
        '''
        写入内容
        :param row: 行号
        :param col: 列号
        :param value: 值
        :param size: 字体大小
        :param color: 颜色,传入对应的数字来识别不同的颜色
        :return:
        '''
        if color==None:
            color='000000'#黑色
        elif color==1:
            color='0000FF'#蓝色
        elif color==2:
            color='FFFF00'#黄色
        elif color==3:
            color='FF0000'#红色
        font=Font(name='Arial',b=True,size=size,color=color)
        self.sh.cell(row,col,value).font=font

    def save(self,filename=None):
        '''
        保存
        :param filename: 用户传入的文件名
        :return:
        '''
        if filename is None:
            self.wb.save(self.filename)#self.filename是文件的原名
        else:
            self.wb.save(filename)#用户传入的名称



wt=Writer()
wt.open_excel('a.xlsx')
wt.choose_sheet('商品表')
wt.write(row=7,col=1,value='aiyaya',color=1)#行,列,值,颜色的编号
wt.write(7,2,'好难呀',25,3)
# wt.save()#保存为原来的文件
wt.save('b.xlsx')#等同于另存为

 

posted @ 2022-04-19 17:33  认知迭代  阅读(117)  评论(0)    收藏  举报