excel類封裝


excel類封裝需要提供以下功能:

1、打開表單

2、讀取標題

3、讀取所有的數據

4、指定單元格寫入數據(使用靜態方法,不要使用實例方法)

import openpyxl


class ExcelHandler:
    def __init__(self, file):
        # 初始化函數
        self.file = file

    def open_sheet(self, name):     # 打開excel表
        wb = openpyxl.load_workbook(self.file)
        # 通過表單名獲取
        sheet = wb[name]
        return sheet

    def read_title(self, sheet_name):   # 讀取標題
        # 調用open_sheet函數
        sheet = self.open_sheet(sheet_name)
        title = []
        for i in sheet[1]:
            # 將讀取到的值存入到title中
            title.append(i.value)
        return title

    def read_data(self, sheet_name):
        sheet = self.open_sheet(sheet_name)
        # sheet.rows獲取所有行
        rows = list(sheet.rows)
        datas = []
        # 數據從第二行開始,第一行是標題
        for row in rows[1:]:
            data = []
            for cell in row:
                data.append(cell.value)
                # 使用zip將兩個列表組合成字典
                data_dict = dict(zip(self.read_title(sheet_name), data))
            datas.append(data_dict)
        return datas

    @staticmethod
    def write_data(file, sheet_name, row, column, data):        #寫入傳入了路徑,表單名,行,列,修改的內容等參數
        wb = openpyxl.load_workbook(file)
        sheet = wb[sheet_name]
        sheet.cell(row, column).value = data
        wb.save(file)
        wb.close()

if __name__ == "__main__":
    # 測試數據
    excel = ExcelHandler(r"C:\Users\sky\Desktop\python\cases.xlsx")
    print(excel.read_title("Sheet1"))
    print(excel.read_data("Sheet1"))
    excel.write_data(r"C:\Users\sky\Desktop\python\cases.xlsx", "Sheet1", 2, 1,"liuxing")

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM