Files
reporting-engine/report_xlsx/report/report_xlsx.py
2020-11-04 07:39:43 -05:00

34 lines
945 B
Python

# Copyright 2015 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from io import BytesIO
from odoo import models
import logging
_logger = logging.getLogger(__name__)
try:
import xlsxwriter
except ImportError:
_logger.debug('Can not import xlsxwriter`.')
class ReportXlsxAbstract(models.AbstractModel):
_name = 'report.report_xlsx.abstract'
def create_xlsx_report(self, docids, data):
objs = self.env[self.env.context.get('active_model')].browse(docids)
file_data = BytesIO()
workbook = xlsxwriter.Workbook(file_data, self.get_workbook_options())
self.generate_xlsx_report(workbook, data, objs)
workbook.close()
file_data.seek(0)
return file_data.read(), 'xlsx'
def get_workbook_options(self):
return {}
def generate_xlsx_report(self, workbook, data, objs):
raise NotImplementedError()