========================== Excel Import/Export/Report ========================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge2| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github :target: https://github.com/OCA/server-tools/tree/12.0/excel_import_export :alt: OCA/server-tools .. |badge3| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-excel_import_export :alt: Translate me on Weblate .. |badge4| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png :target: https://runbot.odoo-community.org/runbot/149/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| The module provide pre-built functions and wizards for developer to build excel import / export / report with ease. Without having to code to create excel file, developer do, - Create menu, action, wizard, model, view a normal Odoo development. - Design excel template using standard Excel application, e.g., colors, fonts, formulas, etc. - Instruct how the data will be located in Excel with simple dictionary instruction or from Odoo UI. - Odoo will combine instruction with excel template, and result in final excel file. **Table of contents** .. contents:: :local: Installation ============ To install this module, you need to install following python library, **xlrd, xlwt, openpyxl**. Then, simply install **excel_import_export**. For demo, install **excel_import_export_demo**. Usage ===== This module contain pre-defined function and wizards to make exporting, importing and reporting easy. At the heart of this module, there are 2 `main methods` - ``self.env['xlsx.export'].export_xlsx(...)`` - ``self.env['xlsx.import'].import_xlsx(...)`` For reporting, also call `export_xlsx(...)` but through following method - ``self.env['xslx.report'].report_xlsx(...)`` After install this module, go to Settings > Excel Import/Export > XLSX Templates, this is where the key component located. As this module provide tools, it is best to explain as use cases. For example use cases, please install **excel_import_export_demo** **Use Case 1:** Export/Import Excel on existing document This add export/import action menus in existing document (example - excel_import_export_demo/import_export_sale_order) 1. Create export action menu on document, with res_model="export.xlsx.wizard" and src_model="", and context['template_domain'] to locate the right template -- actions.xml 2. Create import action menu on document, with res_model="import.xlsx.wizard" and src_model="", and context['template_domain'] to locate the right template -- action.xml 3. Create/Design Excel Template File (.xlsx), in the template, name the underlining tab used for export/import -- .xlsx 4. Create instruction dictionary for export/import in xlsx.template model -- templates.xml **Use Case 2:** Import Excel Files With menu wizard to create new documents (example - excel_import_export_demo/import_sale_orders) 1. Create report menu with search wizard, res_model="import.xlsx.wizard" and context['template_domain'] to locate the right template -- menu_action.xml 2. Create Excel Template File (.xlsx), in the template, name the underlining tab used for import -- .xlsx 3. Create instruction dictionary for import in xlsx.template model -- templates.xml **Use Case 3:** Create Excel Report This create report menu with criteria wizard. (example - excel_import_export_demo/report_sale_order) 1. Create report's menu, action, and add context['template_domain'] to locate the right template for this report -- .xml 2. Create report's wizard for search criteria. The view inherits ``excel_import_export.xlsx_report_view`` and mode="primary". In this view, you only need to add criteria fields, the rest will reuse from interited view -- 3. Create report model as models.Transient, then define search criteria fields, and get reporing data into ``results`` field -- .py 4. Create/Design Excel Template File (.xlsx), in the template, name the underlining tab used for report results -- .xlsx 5. Create instruction dictionary for report in xlsx.template model -- templates.xml **Note:** Another option for reporting is to use report action (report_type='excel'), I.e., .. code-block:: xml By using report action, Odoo will find template using combination of model and name, then do the export for the underlining record. Please see example in excel_import_export_demo/report_action, which shows, 1. Print excel from an active sale.order 2. Run partner list report based on search criteria. Known issues / Roadmap ====================== - Module extension e.g., excel_import_export_async, that add ability to execute as async process. - Ability to add contextual action in XLSX Tempalte, e.g., Add import action, Add export action. In similar manner as in Server Action. Changelog ========= 12.0.1.0.4 (2019-08-28) ~~~~~~~~~~~~~~~~~~~~~~~ * Fix style sum in footer 12.0.1.0.3 (2019-08-09) ~~~~~~~~~~~~~~~~~~~~~~~ * Add report action for report_type = 'excel' 12.0.1.0.2 (2019-08-07) ~~~~~~~~~~~~~~~~~~~~~~~ * Small fix, to ensure that system parameter 'path_temp_file' (ir.config_parameter) is readable 12.0.1.0.1 (2019-06-24) ~~~~~~~~~~~~~~~~~~~~~~~ * Fix wizard on v12 can't download sample template file - https://github.com/OCA/server-tools/issues/1574 12.0.1.0.0 (2019-02-24) ~~~~~~~~~~~~~~~~~~~~~~~ * Start of the history Bug Tracker =========== Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. Credits ======= Authors ~~~~~~~ * Ecosoft Contributors ~~~~~~~~~~~~ * Kitti Upariphutthiphong. (http://ecosoft.co.th) * Saran Lim. (http://ecosoft.co.th) Maintainers ~~~~~~~~~~~ This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. .. |maintainer-kittiu| image:: https://github.com/kittiu.png?size=40px :target: https://github.com/kittiu :alt: kittiu Current `maintainer `__: |maintainer-kittiu| This module is part of the `OCA/server-tools `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.