一、首先需要思考,我們在頁面匯出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檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556598.html
標籤:其他
上一篇:我做了10年的測驗,由衷的建議年輕人別入這行了...
下一篇:返回列表
