首页 > 编程语言 >python接口自动化封装导出excel方法和读写excel数据

python接口自动化封装导出excel方法和读写excel数据

时间:2023-07-04 17:13:03浏览次数:39  
标签:文件 wb python excel 读写 导出 self

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

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

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

image.png

把返回的数据类型变成了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格式文件

image.png

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

标签:文件,wb,python,excel,读写,导出,self
From: https://www.cnblogs.com/xxstudy/p/17526241.html

相关文章

  • Camstar SSL需要证书下载才能导入excel
    谷歌浏览器F12,点击security,点击ViewCertificate.  下载好了,双击,进行安装 设置:注册表 ......
  • Python 元组转换为列表
    1.直接将元组转为列表tup=(21,19,11,46,18)print(tup)lt=list(tup)print(lt)输出(21,19,11,46,18)[21,19,11,46,18]2.将元组列表转为列表#Listoftupleinitializationlistoftuples=[("Apple",1),("Microsoft",2),("Amazon",......
  • python计算某字符出现次数
    count()方法用于统计字符串里某个字符或子字符串出现的次数.st1=input().upper()st2=input().upper()print(st1.count(st2))tips:只要将所有字符串统一转化为大写或者小写,计算次数即可。upper()全部转化为大写lower()全部转化为小写另:str.count(sub,start=0,en......
  • Python中对open读取文件内容时的mode模式解析
    1.Python可以使用open函数来实现文件的打开,关闭,读写操作;Python3中的open函数定义为:open(file,mode='r',buffering=None,encoding=None,errors=None,newline=None,closefd=True)其中mode列表为:'r'#openforreading(default)'w'#openforwriting,truncatin......
  • vscode python开发环境搭建
    vscode是微软开发的轻量级ide软件,有大量的插件,很适合python开发。以下简述vscode的python开发环境搭建步骤:一、官网下载vscode软件基于安全考虑软件下载最好到官网下载。vscode官网地址:https://code.visualstudio.com/download,到2023年7月4日最新版本为:VSCodeUserSetup-x64-1.......
  • python基础day37 基于TCP、UDP协议的套接字编程和粘包现象
    基于TCP协议的套接字编程(socket编程)什么是Socket?我们经常把Socket翻译为套接字,Socket是在应用层和传输层之间的一个抽象层,它把TCO/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信  套接字的分类:AF_UNIX:用在局域网中AF_INET:用在互联网中客户......
  • python中如何简洁剔除列表中的特定值
    在Python中,可以使用列表推导式或filter函数来剔除列表中的特定值。方法一:使用列表推导式original_list=[1,2,3,4,5]exclude_value=3new_list=[xforxinoriginal_listifx!=exclude_value]print(new_list)#输出:[1,2,4,5]方法二:使用filter函数origi......
  • pip安装python包到指定python版本下
    1.命令行进入到指定python安装目录。比如我电脑上有python3.8也有python3.9。准备给python3.9安装指定的包2.执行:python-mpipinstall包名......
  • python学习_转义字符
    一、什么是转义字符转义字符反斜杠(\),转义字符的表现形式:反斜杠+想要实现转义功能首字母如:\n:换行,n是newline的首字母    \r:回车,r是return的首字符,回车是光标回到当前行的开头位置    \t:水平制表符,t是tab的首字母(一个\t占4个空格)    \b:退格,b是ba......
  • EasyExcel 根据模板复制Sheet并将数据分页填充
    需求指定Excel模板文件,只给一个Sheet每个Sheet填充指定数量的数据,超过指定条数,根据模板Sheet复制并且追加数据准备工作引入easyExcelpom依赖<!--https://mvnrepository.com/artifact/com.alibaba/easyexcel--><dependency><groupId>com.alibaba</group......