您当前的位置: 首页   发展 > python接口自动化封装导出excel方法和读写excel数据 天天速看料
python接口自动化封装导出excel方法和读写excel数据 天天速看料

时间:2023-07-05 17:37:06    来源:博客园

一、首先需要思考,我们在页面导出excel,用python导出如何写入文件的

封装前需要确认python导出excel接口返回的是一个什么样的数据类型如下:我们先看下不对返回结果做处理,直接接收数据类型是一个对象,无法获取返回值


【资料图】

此时我们需要对返回数据做处理,如下;response.text # 响应文本数据(字符串)

把返回的数据类型变成了dict,response.json()** 这样就方便我们按照字典的操作去拿数据**

但是 我们现在的操作是要获取导出文件的数据,导出excel是一个二进制文件:

response.content # 响应返回的内容(二进制)

接下来我们按思路response.content方法来把这个二进制文件写入excel中:

二、如下封装:

class Export:    """    导出域    """    def __init__(self, token):        self.token = token        self.headers = {                "Authorization": self.token,                "Content-Type": "application/json;charset=UTF-8"        }                ```def export_sku_excel(self, payload, path):    """            商品:商品明细导出            """    url = f"{HOST}/api/v1/commodity/exportSKU"    res = client.post(url=url, json=payload, verify=False, headers=self.headers)    resp = res.content    with open(path, "wb") as f:  # 第一个参数是保存文件路径,不加路径就是当前路径        if res.status_code == 200:            return f.write(resp)        else:            return False

如上,先接收二进制文件,然后使用操作excel方法‘wb’写入二进制文件

以上写入文件后,测试过程我们需要再读取文件数据来断言,如下:

class ExcelMethod:    def __init__(self, filename):        self.filename = filename    def read_excel(self, row, col):        """        读取导出文件的数据        Returns:excel单元格数据        """        wb = xlrd.open_workbook(self.filename)        sheet_name = wb.sheet_names()[0]        sheet1 = wb.sheet_by_index(0)        cellInfo = sheet1.cell_value(row, col)  # 获取文件中某单元格的值        return cellInfo  # 返回文件单元格数据

以上是一个写入和读取导出excel的封装方法值得注意的是,我用的是python内置库xlrd读写excel文件,xls格式文件xlrd可以读写,且xlrd使用1.几的版本,最新版本不支持xls文件,openpyxl库只支持xlsx格式文件

还有一种方法,使用pandas库也可以读取Excel文件

标签:

X 关闭

X 关闭