Prueba de automatización de interfaz --- sobresalir lectura y escritura

Ver codigo

import xlrd
import pprint
from config import excel_dir, sheet_name, excel_report_dir
from xlutils.copy import copy


class Excel:
    def __init__(self, excel_dir, sheet_name):
        """

        :param excel_dir: Excel路径
        :param sheet_name: 需要操作的sheet名称
        """

        self.excel_dir = excel_dir
        self.sheet_name = sheet_name
        self.resultList = []
        self.work_book = xlrd.open_workbook(self.excel_dir, formatting_info=True)
        self.sheet = self.work_book.sheet_by_name(self.sheet_name)

    def get_excel_data(self, start_row, end_row, *args):
        """

        :param start_row: 开始的行(从0开始数)
        :param end_row: 结束的行(从0开始数)
        :param args: 需要获取的列
        :return:返回一个列表,列表元素是每一行对应列的数据组成的元组[(),(),()]
        """
        for one in range(start_row, end_row + 1):
            tmp_list = []
            for arg in args:
                tmp_list.append(self.sheet.cell(one, arg).value)
            tmp_tuple = tuple(tmp_list)
            self.resultList.append(tmp_tuple)

        return self.resultList

    def set_excel_data(self, excel_report_dir, sheet_index, start_row, end_row, result_col, inData):
        """

        :param excel_report_dir: 报告存放路径
        :param sheet_index: sheet页索引(从0开始数)
        :param start_row: 开始的行(从0开始数)
        :param end_row:结束的行((从0开始数))
        :param result_col:写入数据的行(从0开始数)
        :param inData:待写入的数据,是一个列表[]
        :return:
        """
        new_work_book = copy(self.work_book)
        new_work_sheet = new_work_book.get_sheet(sheet_index)

        for one in range(start_row, end_row + 1):
            new_work_sheet.write(one, result_col, inData[one - start_row])
        new_work_book.save(excel_report_dir)


excel = Excel(excel_dir, sheet_name)
result = excel.get_excel_data(1, 4, 3, 5, 6, 8)
pprint.pprint(result)

excel.set_excel_data(excel_report_dir, 1, 1, 4, 9, ["pass", "pass", "pass", "pass"])

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_19982677/article/details/107875015
Recomendado
Clasificación