嗨,我正在尝试从这个 url ( http://www.sicom.gov.co/precios/controller?accion=ExportToExcel ) 下载一个 excel 文件,然后我需要使用 xlrd 解析它。
问题是,当我将该 URL 放在浏览器上时,我得到一个或多或少 2MB 的 excel 文件,但是当我使用 urllib2、http2lib 甚至从命令行 curl 下载文件时,我只得到一个 4k 文件并且显然解析不完整文件惨遭失败。
奇怪的是,xlrd 似乎能够从下载的文件中读取正确的工作表名称,所以我猜该文件是正确的,但它显然不完整。
这是我想要实现的一些示例代码
import urllib2
from xlrd import open_workbook
excel_url = 'http://www.sicom.gov.co/precios/controller?accion=ExportToExcel'
result = urllib2.urlopen(excel_url)
wb = open_workbook(file_contents=result.read())
response = ""
for s in wb.sheets():
response += 'Sheet:' + s.name + '<br>'
for row in range(s.nrows):
values = []
for col in range(s.ncols):
value = s.cell(row, col).value
if (value):
values.append(str(value) + " not empty")
else:
values.append("Value at " + col + ", " + row + " was empty")
response += str(values) + "<br>"