使用预定义的 excel 模板进行导出

Use predefined excel template for exporting

我的问题:

每月我必须将特定数据导出到预定义的 Exel sheet。它可以与月度报告进行比较。但是,它必须放在具有预定义样式和配置的 Excel sheet 中。我可以创建一个以这种格式导出的模块,但不幸的是,这不是一个选项,因为 Excel 文件正在由公司的另一个部门逐月更改和调整。

最优解:

最好的方法是选择将文件导入 odoo,然后 select 单元格,这样 odoo 就知道将哪些数据放在哪里。如果其他部门创建了一个新的 Excel 文件,只需将其上传到 odoo,模块将替换旧文件。

显然这需要通过创建自定义模块来完成。然而,如果知道这是否可能会很好?

当然可以!

您需要编写一个 class 方法,使用 XlsxWriter (https://xlsxwriter.readthedocs.io), OpenPyXL (https://openpyxl.readthedocs.io) or some other library capable of handling Xlsx files (https://xlsxwriter.readthedocs.io/alternatives.html)

生成您的 Excel 文件

然后您可以使用 scheduled action 或从另一个 python 脚本调用它(请参阅 <path_to_v12>/addons/mail/static/scripts/odoo-mailgate.py 以获取想法),由操作系统的 cron 触发。

棘手的部分是使配置对用户友好。我建议:首先,利用 ir_model_data 模型指向你需要的任何东西(表、字段、记录);其次,向保存配置的模型添加一个 sequence 字段,并在表单视图定义中使用 <field name="sequence" widget='handle'/>,以便用户可以拖放以重新排序字段。

顺便说一句,创建自定义模块是个好主意。