我的问题:
每月我必须将特定数据导出到预定义的Exel表。它可以与月度报告进行比较。但是,必须将其放在具有预定义样式和配置的Excel工作表中。我可以创建一个以这种格式导出的模块,但不幸的是,这不是一个选项,因为Excel文件正在由公司的另一个部门每月更改和调整。
最佳解决方案
最好的方法是选择将文件导入odoo然后选择单元格,以便odoo知道放置哪些数据。如果其他部门创建了新的Excel文件,则只需将其上传到odoo,模块将替换旧文件。
显然,这需要通过创建自定义模块来完成。但是,知道这是否可能会很好吗?
当然,它可以做到!
您需要编写一个类方法,使用XlsxWriter(https://xlsxwriter.readthedocs.io),OpenPyXL(https://openpyxl.readthedocs.io)或其他能够处理Xlsx文件的库(https://xlsxwriter.readthedocs.io/alternatives.html)生成Excel文件。
然后你可以使用scheduled action
或操作系统的cron触发的另一个python脚本(参见<path_to_v12>/addons/mail/static/scripts/odoo-mailgate.py
来获得一个想法)来调用它。
棘手的部分是使配置用户友好。我建议:首先,利用ir_model_data
模型指向你需要的任何东西(表格,字段,记录);其次,将sequence
字段添加到包含配置的模型中,并在表单视图定义中使用<field name="sequence" widget='handle'/>
,以便用户可以拖放以重新排序字段。
顺便说一句,创建自定义模块是个好主意。