来自后端服务的 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))
我的后端服务(google 应用引擎)中有一些 openpyxl 代码,我想从 google 云存储/blobstore 加载一个文件,但传递文件流(通过blobstore reader) 似乎对 load_workbook 无效。 xlrd 有一个传递文件内容的选项 (
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))