来自后端服务的openpyxl load_workbook

时间:2017-09-10 01:02:05

标签: google-app-engine openpyxl

我的后端服务(谷歌应用引擎)中有一些openpyxl代码,我想从谷歌云商店/ blobstore加载文件,但传递文件流(通过blobstore阅读器)并不是似乎对load_workbook有效。 xlrd有一个传递文件内容的选项(Reading contents of excel file in python webapp2)。 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)

错误是: 的UnicodeDecodeError ' ASCII'编解码器不能解码位置11中的字节0x9d:序数不在范围内(128)

1 个答案:

答案 0 :(得分:1)

找到缺失的链接: Using openpyxl to read file from memory

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

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