1. 程式人生 > 實用技巧 >python自動化-操作excel方法的封裝

python自動化-操作excel方法的封裝

讀取excel資料、填寫執行結果:

import openpyxl
from common.handle_path import DATA_FILEDIR
from openpyxl.styles import PatternFill, colors


class HandleExcel:
    """操作excel檔案"""

    def __init__(self, filename, sheetname):
        """
        初始化物件屬性
        :param filename: excel檔案路徑
        :param sheetname: 表單名
        
""" self.filename = filename self.sheetname = sheetname # 獲取工作簿物件 self.wb = openpyxl.load_workbook(filename) # 選擇表單 self.sh = self.wb[sheetname] def read_data(self): """讀取excel中的資料""" # 按行獲取所有的資料,轉換為列表 rows_data = list(self.sh.rows)
# 建立一個空列表用來儲存所有的用例資料 cases_data = [] # 獲取表單中的表頭資料,放入title這個列表中 title = [] for i in rows_data[0]: title.append(i.value) # 獲取除表頭之外的其他行資料 for item in rows_data[1:]: # 每遍歷出來一行資料,就建立一個空列表,來存放該行資料 values = [] for
i in item: values.append(i.value) # 將該行的資料和表頭進行打包,轉換為字典 case = dict(zip(title, values)) # 將該行資料打包的字典,放入cases_data中 cases_data.append(case) # 返回讀取出來的所有資料 return cases_data def write_data(self, row, column, value): """ 寫入資料 :param row: 行 :param column: 列表 :param value: 寫入的值 :return: """ self.sh.cell(row=row, column=column, value=value) # 以下為定義填充顏色,需要根據自己的斷言結果進行設定 fill_pass = PatternFill(fill_type='solid', fgColor="00FF00") fill_failed = PatternFill(fill_type='solid', fgColor=colors.RED) if value == "pass": self.sh.cell(row=row, column=column).fill = fill_pass elif value == "failed": self.sh.cell(row=row, column=column).fill = fill_failed else: pass # 把工作簿儲存為檔案 self.wb.save(self.filename) if __name__ == '__main__': # 除錯讀資料的程式碼 # excel = HandleExcel(DATA_FILEDIR, "name") # cases = excel.read_data() # print(cases) # 除錯寫資料的程式碼 excel = HandleExcel(DATA_FILEDIR, "test") excel.write_data(row=1, column=1, value="pass") excel.write_data(row=1, column=2, value="failed") excel.write_data(row=1, column=3, value="xxxx") print("完成")