From 7b6d5a0cc931f06a7efd7efa3bd20b1fc823baea Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sat, 24 Jul 2021 17:35:33 +0200 Subject: [PATCH] Exporters: Allow extended XSLX formatting --- src/pretix/base/exporter.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/exporter.py b/src/pretix/base/exporter.py index f956e28b2..fe3939c05 100644 --- a/src/pretix/base/exporter.py +++ b/src/pretix/base/exporter.py @@ -47,12 +47,15 @@ from django.db.models import QuerySet from django.utils.formats import localize from django.utils.translation import gettext, gettext_lazy as _ from openpyxl import Workbook -from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE, KNOWN_TYPES +from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE, KNOWN_TYPES, Cell from pretix.base.models import Event def excel_safe(val): + if isinstance(val, Cell): + return val + if not isinstance(val, KNOWN_TYPES): val = str(val) @@ -221,9 +224,13 @@ class ListExporter(BaseExporter): writer.writerow(line) return self.get_filename() + '.csv', 'text/csv', output.getvalue().encode("utf-8") + def prepare_xlsx_sheet(self, ws): + pass + def _render_xlsx(self, form_data, output_file=None): wb = Workbook(write_only=True) ws = wb.create_sheet() + self.prepare_xlsx_sheet(ws) try: ws.title = str(self.verbose_name) except: