我的后端服务(谷歌应用引擎)中有一些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)
答案 0 :(得分:1)
找到缺失的链接: Using openpyxl to read file from memory
我需要将文件流转换为字节。
from io import BytesIO
...
wb = load_workbook(BytesIO(blob_reader_data))