Skip to content

Commit 5352919

Browse files
authored
Merge pull request #72 from alb3rto269/save-virtual-workbook
fix save_virtual_workbook deprecation/removal in openpyxl 3.1.0
2 parents 2a6a429 + b8fd0bf commit 5352919

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

drf_excel/renderers.py

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import json
22
from collections.abc import Iterable, MutableMapping
3+
from tempfile import NamedTemporaryFile
34
from typing import Dict
45

56
from openpyxl import Workbook
67
from openpyxl.drawing.image import Image
78
from openpyxl.styles import PatternFill
89
from openpyxl.utils import get_column_letter
910
from openpyxl.worksheet.views import SheetView
10-
from openpyxl.writer.excel import save_virtual_workbook
11+
from openpyxl.writer.excel import save_workbook
1112
from rest_framework.fields import (
1213
BooleanField,
1314
DateField,
@@ -211,7 +212,17 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
211212
self.sheet_view_options = get_attribute(drf_view, "sheet_view_options", dict())
212213
self.ws.views.sheetView[0] = SheetView(**self.sheet_view_options)
213214

214-
return save_virtual_workbook(wb)
215+
return self._save_virtual_workbook(wb)
216+
217+
def _save_virtual_workbook(self, wb):
218+
tmp = NamedTemporaryFile()
219+
save_workbook(wb, tmp.name)
220+
221+
tmp.seek(0)
222+
virtual_workbook = tmp.read()
223+
tmp.close()
224+
225+
return virtual_workbook
215226

216227
def _check_validation_data(self, data):
217228
detail_key = "detail"

0 commit comments

Comments
 (0)