В openpyxl 2.6 вызов метода save_virtual_workbook
выдает следующее предупреждение:
DeprecationWarning: Call to deprecated function save_virtual_workbook (Use a NamedTemporaryFile).
В какой-то момент save_virtual_workbook
будет удалено из openpyxl.
В Python 3 типичное использование длясохранить рабочую книгу openpyxl в файловом потоке становится:
from io import BytesIO
from tempfile import NamedTemporaryFile
from openpyxl import Workbook
wb = Workbook()
with NamedTemporaryFile() as tmp:
wb.save(tmp.name)
output = BytesIO(tmp.read())
После рассмотрения реализации метода WorkBook save
имя файла отправляется прямо в ZipFile, который принимает путь или объект, подобный файлу, такИменованный файл не требуется, просто используйте BytesIO в памяти:
from io import BytesIO
from openpyxl import Workbook
wb = Workbook()
virtual_workbook = BytesIO()
wb.save(virtual_workbook)
# now use virtual_workbook to send to a stream; email attachment, etc