跳转到主要内容

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/16.0/excel_import_export/static/description/xlsx_template.png

注意:使用简单报告模式,系统将使用公共条件向导。

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

已知问题/路线图

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

错误追踪器

错误在 GitHub Issues 上跟踪。如果在那里没有报告您的问题,请提供详细的反馈,帮助我们解决这个问题。

请不要直接联系贡献者以获取支持或帮助解决技术问题。

鸣谢

作者

  • Ecosoft

贡献者

维护者

此模块由 OCA 维护。

Odoo Community Association

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

当前维护者

kittiu

此模块是GitHub上OCA/server-tools项目的一部分:OCA/server-tools

欢迎您贡献。有关如何贡献的更多信息,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

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

源代码分布

此版本没有提供源代码分布文件。有关生成分布存档的教程,请参阅生成分布存档

构建分布

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面