【发布时间】:2021-12-29 12:28:32
【问题描述】:
我遇到了问题,我正在将 xlsx 文件上传到谷歌存储。 当我想稍后重用它们时,我会获得一个 blob 文件。
之后我不知道如何使用实际的 xlsx 文件。
from google.cloud import storage
import openpyxl
client = storage.Client()
new_bucket = client.get_bucket('bucket.appspot.com')
#get blob object:
o = new_bucket.get_blob('old_version.xlsx')
# <Blob: blobstorage.appspot.com, old_version.xlsx, 16372393787851916>
#download the object
bytes_version = o.download_as_bytes()
#load it to openpyxl library
wb = load_workbook(filename = bytes_version ,data_only=True)
InvalidFileException: openpyxl does not support b'.xmlpk\x05\x06\x00\x00\x00\x00:\x00:\x00n\x10\x00\x00\xa6\x06\x01\x00\x00\x00' file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm
最终目标是将文件作为对象下载并使用 openpyxl 库读取它们(它适用于原始文件,但在云上存储后找不到获取我的 xlsx 文件的方法)。
感谢您的帮助!
编辑:添加当前代码
【问题讨论】:
-
任何一种方法都可以。下载对象后遇到什么问题?
-
能否也提供一段代码?
-
谷歌搜索。 Python中有很多使用这些方法的例子。您的问题中缺少的一项是您遇到了什么问题?
-
Edit 添加了使用的代码,当前的问题是由于文件不是原始文件而是文件的 blob 或转换版本以及 openpyxl 库无法将原始文件识别为 xlsx 文件而导致的错误.
标签: python excel google-cloud-storage blob