跳转到主要内容

用于开发Excel导入/导出/报告的基础模块

项目描述

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

该模块提供预构建的函数和向导,使开发者能够轻松地构建Excel导入/导出/报告。

无需编写代码来创建Excel文件,开发者只需

  • 创建菜单、操作、向导、模型、视图,进行常规的Odoo开发。

  • 使用标准的Excel应用程序设计Excel模板,例如,颜色、字体、公式等。

  • 使用简单的字典指令或从Odoo UI指示数据将如何定位在Excel中。

  • Odoo将结合指令与Excel模板,生成最终的Excel文件。

目录

安装

要安装此模块,您需要安装以下Python库,xlrd, xlwt, openpyxl

然后,简单地安装 excel_import_export

对于演示,安装 excel_import_export_demo

用法

概念

此模块包含预定义的函数和向导,使导出、导入和报告变得简单。

在此模块的核心,有2个 主要方法

  • self.env['xlsx.export'].export_xlsx(...)

  • self.env['xlsx.import'].import_xlsx(...)

对于报告,也可以调用 export_xlsx(…) 但通过以下方法

  • self.env['xslx.report'].report_xlsx(...)

安装此模块后,转到设置 > Excel导入/导出 > XLSX模板,关键组件就在这里。

由于此模块提供工具,最好通过用例进行解释。例如,用例请安装 excel_import_export_demo

用例

用例1:在现有文档上导出/导入Excel

此插件在现有文档中添加导出/导入操作菜单(例如 - excel_import_export_demo/import_export_sale_order)

  1. 在文档中创建导出操作菜单,使用 <act_window>,res_model="export.xlsx.wizard" 和 src_model="<document_model>",以及 context[‘template_domain’] 来定位正确的模板 - actions.xml

  2. 在文档中创建导入操作菜单,使用 <act_window>,res_model="import.xlsx.wizard" 和 src_model="<document_model>",以及 context[‘template_domain’] 来定位正确的模板 - action.xml

  3. 创建/设计 Excel 模板文件 (.xlsx),在模板中,命名用于导出/导入的底纹标签 - <file>.xlsx

  4. 在 xlsx.template 模型中创建导出/导入的指令字典 - templates.xml

用例 2: 导入 Excel 文件

使用菜单向导创建新文档(例如 - excel_import_export_demo/import_sale_orders)

  1. 创建带有搜索向导的报告菜单,res_model="import.xlsx.wizard" 和 context[‘template_domain’] 来定位正确的模板 - menu_action.xml

  2. 创建 Excel 模板文件 (.xlsx),在模板中,命名用于导入的底纹标签 - <import file>.xlsx

  3. 在 xlsx.template 模型中创建导入的指令字典 - templates.xml

用例 3: 创建 Excel 报表

使用创建报告菜单的准则向导。 (例如 - excel_import_export_demo/report_sale_order)

  1. 创建报告的菜单、操作,并添加 context[‘template_domain’] 来定位此报告的正确模板 - <report>.xml

  2. 创建报告的向导用于搜索准则。视图继承 excel_import_export.xlsx_report_view 和 mode="primary"。在此视图中,您只需要添加准则字段,其余将从继承的视图中复用 - <report.xml>

  3. 创建报告模型作为 models.Transient,然后定义搜索准则字段,并将报表数据获取到 results 字段 - <report>.py

  4. 创建/设计 Excel 模板文件 (.xlsx),在模板中,命名用于报告结果的底纹标签 - <report_file>.xlsx

  5. 在 xlsx.template 模型中创建报告的指令字典 - templates.xml

注意

另一种报告选项是使用报告操作(report_type=’excel’),即

<report id='action_report_saleorder_excel'
        string='Quotation / Order (.xlsx)'
        model='sale.order'
        name='sale_order.xlsx'
        file='sale_order'
        report_type='excel'
/>

通过使用报告操作,Odoo 将使用模型和名称的组合来查找模板,然后对底层记录进行导出。请参阅 excel_import_export_demo/report_action 中的示例,它显示

  1. 从活动销售订单中打印 Excel

  2. 根据搜索准则运行合作伙伴列表报告。

易于使用的报告选项

技术上,此选项与“创建 Excel 报表”用例相同。但与通常需要编写 XML / Python 代码不同,此选项允许用户仅通过配置来根据模型或视图创建报告。

  1. 转到 > 技术 > Excel 导入/导出 > XLSX 模板,并为报告创建一个新的模板。

  2. 在新模板上,选择“简单报告”选项,然后选择以下内容 - 报告模型,这可以是我们要获取结果的数据模型或数据视图。 - 点击上传您的文件并添加 Excel 模板 (.xlsx) - 点击保存,系统将创建示例导出行,用户可以根据结果模型添加更多字段。

  3. 点击添加报告菜单,报告菜单将被创建,用户可以更改其位置。现在报告可以使用了。

https://raw.githubusercontent.com/OCA/server-tools/14.0/excel_import_export/static/description/xlsx_template.png

注意:使用简单报告模式,系统将使用通用的准则向导。

https://raw.githubusercontent.com/OCA/server-tools/14.0/excel_import_export/static/description/common_wizard.png

已知问题/路线图

  • 模块扩展,例如 excel_import_export_async,它增加了作为异步进程执行的能力。

错误跟踪器

错误在 GitHub 问题 上跟踪。如果遇到问题,请检查是否已报告您的问题。如果您是第一个发现它的人,请帮助我们通过提供详细且受欢迎的 反馈

请勿直接联系贡献者以获取支持或技术问题的帮助。

鸣谢

作者

  • Ecosoft

贡献者

维护者

此模块由OCA维护。

Odoo Community Association

OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。

当前维护者

kittiu

此模块是GitHub上OCA/server-tools项目的组成部分。

欢迎您贡献力量。了解如何贡献,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码发行版

此版本没有可用的源代码发行版文件。请参阅有关生成发行版存档的教程。

构建发行版

支持