代码之家  ›  专栏  ›  技术社区  ›  Arnav Shah

openpyxl从后端服务加载工作簿

  •  -1
  • Arnav Shah  · 技术社区  · 7 年前

    我的后端服务(google app engine)中有一些openpyxl代码,我想从google cloud store/blobstore加载一个文件,但传递文件流(通过blobstore阅读器)似乎对load\u工作簿无效。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 回复  |  直到 7 年前
        1
  •  3
  •   Arnav Shah    7 年前

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

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

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