python讀取Excel內容


讀取Excel封裝類

from openpyxl import load_workbook

class ReadExcel:      # 讀取Excel里面的內容

    def __init__(self, file_name, sheet_name):
        self.file_name = file_name
        self.sheet_name = sheet_name

    def get_title(self):     # 讀取Excel里面的title數據
        wb = load_workbook(self.file_name)     # 打開Excel工作簿
        sheet1 = wb[self.sheet_name]
        title = []               # 定義一個空列表,將讀取的title字段進行存儲
        for i in range(1, sheet1.max_column+1):
            title.append(sheet1.cell(1, i).value)
        return title

    def do_excel(self):
        wb = load_workbook(self.file_name)
        sheet1 = wb[self.sheet_name]
        title = self.get_title()   # 調用title內容
        all_data = []
        for j in range(2, sheet1.max_row+1):      # 獲取最大行數,加入循環
            row_data = {}
            for i in range(3, sheet1.max_column+1):  # 獲取最大列數,進行嵌套循環
                row_data[title[i-1]] = sheet1.cell(j, i).value  # 把拿到的數據進行字典的鍵對值匹配
            all_data.append(row_data)
        return all_data

 

對Excel的內容進行數據驅動實例化和序列化

import unittest
from API_Excel.Http_Request.http_request import HttpRequest
from API_Excel.Read_Excel_Data.read_excel_data import ReadExcel
from ddt import ddt, data

# 讀取Excel數據
file = 'E:\自動化練習\dai_test\API_Excel\Read_Excel_Data\data.xlsx'
test_data = ReadExcel(file, 'TestCase').do_excel()


"""API請求的測試類"""
@ddt
class TestHttpRequest(unittest.TestCase):

    def __init__(self, methodName, url, method,  param, expected ):     # 初始化參數
        super(TestHttpRequest,self).__init__(methodName)    # 超繼承多個測試類
        self.url = url
        self.method = method
        self.param = param
        self.expected = expected


    def setUp(self):
        print('API測試開始執行')

    def tearDown(self):
        print('API測試結束執行')
    @data(*test_data)
    def test_http_request(self, item):    # 測試請求函數
        res = HttpRequest().http_request(item['url'], item['method'] , eval(item['param']))
        try:
            self.assertEqual(item['expected'], str(res))
        except Exception as e:
            print('請求發生錯誤-[{0}]'.format(e))
            raise e
        else:
            print('執行結果是{0}'.format(res))

 

以上代碼僅供自己引用   不保證直接運行、 


免責聲明!

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



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