วิธีแก้จุดเหลือเพียงพอแฟ้มหรือไม่?

0

คำถาม

ฉันมีเรื่องสำคัญที่สุดฉันกำลังอัพโหลด xlsx แฟ้มของกูเกิ้ลห้องเก็บของ ตอนที่ฉันอยากจะ reuse พวกเขาหลังจากนั้นฉันเอาเป็นแก้จุดเหลือแฟ้ม

หลังจากนั้นฉันสูญเสียวิธีการใช้ที่จริง 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 แฟ้ม).

ขอบใจเธอสำหรับความช่วยเหลือ!

แก้ไข:เพิ่มปัจจุบันรหัส

blob excel google-cloud-storage python
2021-11-18 15:48:38
1

คำตอบที่ดีที่สุด

2

รหัสของคุณคือการอ่านคลาวด์เก็บของแก้จุดเหลืองหน่วยความจำ:

bytes_version = o.download_as_bytes()

และจากนั้นพยายามจะโหลดข้อมูล workbook จากความทรงจำของ:

wb = load_workbook(filename = bytes_version ,data_only=True)

อย่างไรก็ตามที่ load_workbook() วิธีการคาดหวังให้เป็นชื่อแฟ้มหรือแฟ้ม-เหมือนวัตถุ. ใช้ตามวันที่@item:inlistbox sort ข้อความกับแฟ้มของเนื้อหายังไม่มีการรองรับ.

openpyxl.อ่า.excel.load_workbook(ชื่อแฟ้ม,read_only=ผิ keep_vba=ผิ data_only=ผิ keep_links=เรื่องจริง)

พารามิเตอร์:

filename (string or a file-like object open in binary mode c.f., zipfile.ZipFile) – the path to open or a file-like object

เอกสารคู่มือ@info:shell

ทางออก:

ช่วยคลาวด์เก็บของแก้จุดเหลือจะเป็นท้องถิ่นดิสก์แฟ้มแรกและจากนั้นสำหรับกำหนดชื่อแฟ้มในการโทรเพื่อ load_workbook():

o.download_to_filename('/path/to/file')
wb = load_workbook(filename = '/path/to/file' ,data_only=True)

ข้อควรจำ:แทน /พาธ/ไป/แฟ้ม ด้วจริงของเส้นทางอยู่บนระบบของคุณและกับ .xlsx แฟ้มเลื่อนเวลาออกไปหน่อย

2021-11-19 11:28:56

ขอบคุณจอห์นเข้าใจปัญหาของฉันแม้ว่ามันจะเป็นไปได้ที่จะโหลดแฟ้มขึ้นมาจากความทรงจำในกรณีนั้น definitly ผิดพลาด ขอบคุณอีกครั้ง!
Tony

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่