来自后端服务的 openpyxl load_workbook

openpyxl load_workbook from backend service

我的后端服务(google 应用引擎)中有一些 openpyxl 代码,我想从 google 云存储/blobstore 加载一个文件,但传递文件流(通过blobstore reader) 似乎对 load_workbook 无效。 xlrd 有一个传递文件内容的选项 ()。 openpyxl 有类似的东西吗?

blobstore_filename = '/gs{}'.format('/mybucket/mycloudstorefilename.xlsx')
blob_key = blobstore.create_gs_key(blobstore_filename)
blob_reader = blobstore.BlobReader(blob_key)
blob_reader = blobstore.BlobReader(blob_key, buffer_size=1048576)
blob_reader = blobstore.BlobReader(blob_key, position=0)
blob_reader_data = blob_reader.read()
load_workbook(blob_reader_data)

错误是: Unicode解码错误 'ascii' 编解码器无法解码位置 11 中的字节 0x9d:序号不在范围内 (128)

找到丢失的link: Using openpyxl to read file from memory

我需要将文件流转换成字节。

from io import BytesIO
...
wb = load_workbook(BytesIO(blob_reader_data))