This module provides a basic report class to generate xlsx report.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Adds a new XLSX report type to Odoo, so reports can be generated and downloaded as Excel files instead of PDF. It also provides a base class developers use to build custom Excel reports.
This module extends Odoo's reporting system with a new report type called XLSX. Once installed, reports configured with this type can be printed or downloaded as Excel files from the same places where PDF reports are available.
- It adds the XLSX option to the report type field on report actions (
ir.actions.report), so administrators can choose it when setting up a report. - It provides an abstract report model (
report.report_xlsx.abstract) that other modules inherit to build their own Excel reports. It handles creating the workbook, filling it, and returning the file. - A demo report called "Print to XLSX" is included for the
res.partnermodel, showing a simple example that writes partner names into a sheet. - When a report is configured to be saved as an attachment, the generated Excel file is stored on the record (only when a single record is selected).
- The module includes a small safeguard that automatically renames duplicate sheet names in the generated workbook, avoiding errors when two sheets would have the same name.
- It works together with the web client so that clicking a report of type XLSX downloads the file directly.
It touches the report action model and the report download controller, and requires the Python libraries xlsxwriter and xlrd to be installed on the server.
Depends on
Required by other modules
Models and fields (3)
- ir.actions.report · extends an existing modelreport_type
- report.report_xlsx.abstract · new model
- report.report_xlsx.partner_xlsx · new model
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 13.0
Confirmed on 2026-11-03 in branch 13.0 of OCA/reporting-engine.
terminal Installation and usage
OCA documentation · Odoo 19.0Installation
Source · Odoo 19.0Make sure you have xlsxwriter Python module installed:
$ pip3 install xlsxwriter
For testing it is also necessary xlrd Python module installed:
$ pip3 install xlrd
Usage
Source · Odoo 19.0An example of XLSX report for partners on a module called module_name:
A python class :
from odoo import models
class PartnerXlsx(models.AbstractModel): _name = 'report.module_name.report_name' _inherit = 'report.report_xlsx.abstract'
def generate_xlsx_report(self, workbook, data, partners): for obj in partners: report_name = obj.name # One sheet by partner sheet = workbook.add_worksheet(report_name[:31]) bold = workbook.add_format({'bold': True}) sheet.write(0, 0, obj.name, bold)
To manipulate the workbook and sheet objects, refer to the documentation of xlsxwriter.
A report XML record :
Print to XLSX res.partner xlsx module_name.report_name module_name.report_file
report
No verified information in OCA: Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.