from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Color


class MyExcel:
    def __init__(self, file):
        self.file = file
        self.wb = load_workbook(self.file)
        self.wb.guess_types = True

    # 切换到指定名字的sheet页面
    def active_sheet(self, sheet_name):
        self.ws = self.wb[sheet_name]

    # 获取所有的sheet name
    def get_sheet_names(self):
        sheetnames = self.wb.sheetnames
        return sheetnames

    def get_value(self, add):

        return self.ws[add].value

    def get_value_by_rc(self, r, c):
        return self.ws.cell(r, c).value

    def set_value(self, add, value):
        if 'H' in add:
            self.ws[add].alignment = Alignment(horizontal='center', vertical='center')
            self.ws[add].border = Border(bottom=Side(style='thin'))
            self.ws[add].font = Font(size=10)
        self.ws[add] = value

    def set_value_by_rc(self, row, cloum, value):
        self.ws.cell(row, cloum).value = value

    # 获取某行所有值
    def getRowValues(self, row):
        columns = self.ws.max_column
        rowdata = []
        for i in range(1, columns + 1):
            cellvalue = self.ws.cell(row=row, column=i).value
            rowdata.append(cellvalue)
        return rowdata

    def save_file(self, add_name):
        self.wb.save(add_name)

    def remove_sheet(self, sheetname):
        """
        删除sheet
        """
        ws = self.wb[sheetname]
        self.wb.remove(ws)

    def do_close(self):
        self.wb.close()
    def create_sheet(self, sheet_name):
        self.ws = self.wb.create_sheet(sheet_name)
        return self.ws

    def copy_sheet(self, worksheet):
        self.wb.copy_worksheet(worksheet)

    def get_max_row(self):
        return self.ws.max_row

    def get_max_colum(self):
        return self.ws.max_column


if __name__ == "__main__":
    ...

可以简单复用,openpyxl  可以保留原格式另存为,方便易用,如果有兴趣欢迎关注,点赞!!!!
Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐