当前位置:   article > 正文

Python实现接口自动化封装导出excel和读写excel数据

Python实现接口自动化封装导出excel和读写excel数据

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

封装前需要确认python导出excel接口返回的是一个什么样的数据类型

如下:我们先看下不对返回结果做处理,直接接收数据类型是一个对象,无法获取返回值

此时我们需要对返回数据做处理,如下;

response.text # 响应文本数据(字符串)

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

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

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

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

二、如下封装

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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’写入二进制文件

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

1

2

3

4

5

6

7

8

9

10

11

12

13

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文件

  1. ​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
  5. 可以免费学习!划重点!开源的!!!
  6. qq群号:485187702【暗号:csdn11

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/242608
推荐阅读
相关标签
  

闽ICP备14008679号