如何通过 url python 下载 xlsx 文件的第一行

How to download first line of xlsx file via url python

我曾经使用 requests 库通过 url 加载单行:

import requests

def get_line(url):
    resp = requests.get(url, stream=True)
    for line in resp.iter_lines(decode_unicode=True):
        yield line

line = get_line(url)
print(next(line))

一个文本文件完美加载。但是如果我想加载 .xlsx,结果看起来像不可打印的符号:

PK [symbols] [Content_Types].xml [symbols]

有没有办法加载单行单元格?

您不能只阅读原始 HTTP 响应并寻找特定的 Excel 数据。为了以正确的格式获取 xlsx 文件内容,您需要使用适当的库。

常用库之一是xlrd,你可以用pip安装它:

sudo pip3 install xlrd

示例:

import requests
import xlrd

example_url = 'http://www.excel-easy.com/examples/excel-files/fibonacci-sequence.xlsx'
r = requests.get(example_url)  # make an HTTP request

workbook = xlrd.open_workbook(file_contents=r.content)  # open workbook
worksheet = workbook.sheet_by_index(0)  # get first sheet
first_row = worksheet.row(0)  # you can iterate over rows of a worksheet as well

print(first_row)  # list of cells

xlrd documentation


如果您希望能够逐行读取数据 - 您应该切换到更简单的数据表示格式,例如 .csv 或简单的文本文件。