Используйте предопределенный шаблон Excel для экспорта - PullRequest
0 голосов
/ 05 апреля 2019

Моя проблема:

Ежемесячно я должен экспортировать определенные данные в предварительно определенный лист Exel. Это можно сравнить с ежемесячным отчетом. Однако он должен быть помещен в лист Excel с предопределенными стилями и конфигурациями. Я мог бы создать модуль, который экспортирует в этот формат, но, к сожалению, это не вариант, потому что файл Excel изменяется и корректируется из месяца в месяц другим отделом компании.

Оптимальное решение:

Лучшим способом было бы иметь возможность импортировать файл в odoo, а затем выбирать ячейки, чтобы odoo знал, куда поместить данные. Если другой отдел создает новый файл Excel, его просто нужно загрузить в odoo, и модуль заменит старый файл.

Очевидно, что это необходимо сделать путем создания пользовательского модуля. Однако было бы хорошо узнать, возможно ли это вообще?

1 Ответ

0 голосов
/ 10 апреля 2019

Конечно, это можно сделать!

Вам нужно написать метод класса, который генерирует ваш файл Excel с использованием XlsxWriter (https://xlsxwriter.readthedocs.io), OpenPyXL (https://openpyxl.readthedocs.io)) или другой библиотеки, способной обрабатывать файлы Xlsx (https://xlsxwriter.readthedocs.io/alternatives.html)

Затем вы можете вызвать его с помощью scheduled action или из другого скрипта Python (см. <path_to_v12>/addons/mail/static/scripts/odoo-mailgate.py, чтобы получить представление), запускаемого cron операционной системы.

Сложная частьконфигурация удобна для пользователя. Я бы предложил: во-первых, воспользоваться моделью ir_model_data, чтобы указать на все, что вам нужно (таблицы, поля, записи), во-вторых, добавить поле sequence в модель, содержащую конфигурацию и использовать<field name="sequence" widget='handle'/> в определении вида, чтобы пользователи могли перетаскивать и изменять порядок полей.

Кстати, создание собственного модуля - хорошая идея.

...