【问题标题】:Use predefined excel template for exporting使用预定义的 Excel 模板进行导出
【发布时间】:2019-04-05 07:35:41
【问题描述】:

我的问题:

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

最优解:

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

显然,这需要通过创建自定义模块来完成。不过最好知道这是否可能?

【问题讨论】:

  • 您可以创建一个保存的导出,将数据导出为 CSV,然后在 Excel 中使用“从文本导入数据”选项吗?

标签: excel odoo odoo-12


【解决方案1】:

当然可以!

您需要编写一个类方法,使用 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'/>,以便用户可以拖放以重新排序字段。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多