先描述一波问题场景:
需求是项目中调接口会下载Excel文件,然后解析出Excel文件中固定行列的值即可。如果直接读取Excel文件,使用xlrd库即可。但是调下载接口返回的二进制的内容~~~,如下:
b'PK\x03\x04\x14\x00\x08\x08\x08\x00]UNS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00_rels/.rels\xad\x92\xcfN\xc30\x0c\x87\xef}\x8a(\xf7\xd5\xdd@\x08\xa1\xb6\xbbLH\xbb!4\x1e $\xee\x1f\xb5\x89\xa3\xc4\x83\xf2\xf6\x84I\x13\x0c1\xba\xc3\x8eI~\xfe\xfc\xc9N\xb9\x9e\xec(\xde0\xc4\x9e\\%\x97y!\x05:M\xa6wm%_v\x8f\x8b{\xb9\xae\xb3\xac|\xc6Qq\xca\xc4\xae\xf7。。。。。’
如何用xlrd去解析二进制的Excel内容呢? 头大。。。
想法1:把二进制转成Excel文件? --- 暂时没有考虑怎么做
想法2:xlrd库是否支持读二进制Excel内容解析表格内容呢? ---- 没百度到
想法3:把返回的二进制内容存到文档,看看xlrd内容读该文件 ---- 一试果然可以。时间紧迫,先找个方法实现再考虑其他方式。
正题---采用想法3实现思路:
1、将接口返回的二进制文件存储到本地 (我存成了.txt文件)
2、使用xlrd