Доступ к файлам Excel непосредственно из оперативной памяти с помощью Excel Writer

В документации для pd.ExcelWriter мы см. следующий фрагмент кода:

Вы можете хранить файл Excel в оперативной памяти:

import io
df = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"])
buffer = io.BytesIO()
with pd.ExcelWriter(buffer) as writer:
     df.to_excel(writer)

Мой вопрос в том, как мы можем получить доступ к Excel обратно. Я хотел иметь версию того же excel с кодировкой b64 без сохранения файла в системе, поэтому я думаю сохранить его в своей оперативной памяти. Может ли кто-нибудь помочь в этом?

Спасибо за ваше время

Решение: удалось получить доступ к файлу с помощью buffer.getvalue().


person Anurag Saraf    schedule 20.07.2021    source источник


Ответы (1)


В предоставленном фрагменте файл Excel был записан на buffer так же, как если бы он хранился на диске.

Поэтому вы можете прочитать его так же, как если бы вы читали из файла:

pd.read_excel(buffer.getvalue())

Подробнее о поведении BytesIO:

person sophros    schedule 20.07.2021
comment
Спасибо за вашу помощь. Я пробовал это, но это не работает. Получение ошибки значения. ValueError: файл не является распознанным файлом Excel. Любой другой способ, которым мы можем получить к нему доступ? - person Anurag Saraf; 21.07.2021
comment
Привет, удалось получить доступ к данным с помощью метода buffer.getvalue(). Спасибо за помощь Sophros - person Anurag Saraf; 21.07.2021