【问题标题】:openpyxl load_workbook from backend service来自后端服务的 openpyxl load_workbook
【发布时间】:2017-09-10 01:02:04
【问题描述】:

我的后端服务(谷歌应用引擎)中有一些 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)

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

【问题讨论】:

    标签: google-app-engine openpyxl


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2022-11-10
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多