今天遇到一个问题,从某平台下载Excel文件,后缀xlsx,需要取出文件中的一些数据,
看似容易的操作,却历经了一下午的波折:
首先我使用的是最常见的 xlrd
python">import requests
import xlrd
url = 'https://example.com/file.xls' # 替换为你的xls文件的URL
# 发起请求获取xls文件的二进制数据
response = requests.get(url)
content = response.content
# 使用xlrd库加载二进制数据
workbook = xlrd.open_workbook(file_contents=content)
# 获取第一个sheet
sheet = workbook.sheet_by_index(0)
# 遍历行和列获取单元格内容
for row in range(sheet.nrows):
for col in range(sheet.ncols):
cell_value = sheet.cell_value(row, col)
print(cell_value)
以上代码运行后,凡是公式计算得到的数值全为0.0
此方法失败
于是尝试了第二种方法:使用openpyxl库
但缺点是它无法直接解析二进制的http响应数据,需要先保存为xlsx文件
python">import openpyxl
# 发送请求并获取响应
response = requests.get(url)
# 将响应内容写入本地文件
with open('example.xls', 'wb') as f:
f.write(respon