Mendix Excel导出介绍

一、前言

之前我们聊到企业实现应用现代化是一项长期的任重道远的工作,通过Excel导入组件可以作为一个好的起点把企业的业务从线下迁移到线上,当把应用迁移之后,最终结果会有各种的报表展示,这时基于实际业务的需求,我们同样需要把这些数据通过Excel导出,比如存储归档,比如分享给别的部门的同事处理等等,那么Excel导出也是必不可少的功能。接下来让我们看看两种导出方式:通过导出到Excel按钮导出和通过Excel导出组件导出。

二、Excel导出按钮

使用 Excel 导出数据的最简单方法是使用数据网格中的“导出到 Excel”按钮。但是,这有几个限制

  • 只能导出数据网格可访问的数据。
  • 不能操纵要导出的数据。
  • 如果数据网格具有 XPath 数据源,则只能使用“导出到 Excel”按钮。

数据网格上的“导出到 Excel”按钮

  1. 打开Product Overview页面并将数据网格数据源更改为XPath。
  2. 右键单击网格控制栏并添加导出到 Excel按钮。

    Picture1.png

  3. 运行应用程序,使用MxAdmin登录,打开“产品概览”页面并单击“导出到 Excel ”按钮。
  4. 将看到正在下载一个 excel 文件。打开文件,将看到您在数据网格中看到的所有数据。(提示:如果您想导出列而不向用户显示它们,您可以使用 CSS将列设置为Display: none 。)

    Picture2.png

    Picture23.png

三、Excel导出组件

1 简

通过导出到 Excel”按钮以 Excel 格式从Mendix应用程序中的数据网格导出项目是标准的Mendix功能。但是,在需要更多自定义 Excel 文档的情况下,应用程序可以利用Mendix Marketplace内容基于可配置模板创建自定义 Excel 文档。

2 下载所需的Marketplace模

此过程所需的模块是Mx Model ReflectionExcel Exporter 。

Mx 模型反射模块使您的应用程序能够在运行时获取有关其域模型(实体和属性)和微流定义的信息。要下载模块,请执行以下步骤:

  1. 从Studio Pro中打开Mendix Marketplace
  2. 搜索关键字reflection,选择Mx Model Reflection

    Picture3.png

  3. 单击下载以将该模块包含在应用程序中。它将被导入到App Explorer中的AppMarketplace模块中。
  4. 搜索关键字Excel,选择Excel exporter ,然后将该模块下载到您的应用程序中:

    Picture4.png

根据创建应用程序时选择的布局, Studio Pro中可能会因新模块的默认布局而出现错误。要更正此问题,请打开每个有错误的页面并将布局更新为应用程序中所需的布局。

3 添加导航项以允许用户配置设

在本部分中将了解如何在应用程序的导航中添加配置 Mx 模型反射和将在应用程序中使用的 Excel 导出模板所需的页面。

  1. App Explorer中,转到Navigation
  2. 向导航添加一个新项目以打开页面MxObjects_Overview

    Picture5.png

  3. 将新项目添加到导航以打开页面Excel_Document_Overview

    Picture6.png

  4. 打开App Security并将这两个模块分配给 Administrator 用户角色:

    Picture7.png

4 创建输入对象实

创建一个用于导出 Excel 工作簿的实体。这将与用于填充 Excel 电子表格的数据的实体相关联。此操作指南将使用Policy实体来保存数据。

  1. 打开应用程序的域模型并添加一个实体作为“主要导出”实体,它是FileDocument的继承。
  2. 在新创建的实体与希望用作 Excel 导出基础的实体(或多个实体)之间创建关联。

    Picture8.png

5 配置Mx模型反

要运行 MxModelReflection 同步,请执行以下步骤:

  1. 运行您的应用程序。
  2. 查看应用程序。
  3. 单击MxReflection导航项以打开 MxReflection 概览页面。
  4. 选择应用需要同步的各个模块,点击Click to refresh 。
  5. 在左侧Synchronize all entities and microflows of checked modules下,点击Click to refresh 。

6 创建 Excel 导出模

Excel 导出器有许多选项,允许配置根据用户的需要简单或复杂。构建所需模板将根据要求而有所不同。模板的具体定义请参考Excel Exporter | Mendix Documentation

6.1 配置基本模板设置

要设置模板,请执行以下步骤:

  1. 运行应用程序。
  2. 查看应用程序。
  3. 单击Excel 导出器以打开导出器概览页面。
  4. 单击新建以创建新模板。
  5. 文件名(不带扩展名)配置为使用模板时的默认文件名。这是可以识别模板的名称。当模板在微流中使用时,文件名总是可以改变的。
  6. 输入对象配置为与要导出的实体关联的文件文档实体。
  7. 提供说明以识别和记录此模板的用途:

    Picture9.png

  8. 指定日期时间导出格式,该格式定义日期和时间在导出后应如何出现在 Excel 文件中。

6.2创建工作表布局

要创建工作表布局,请执行以下步骤:

  1. 在模板的工作表部分下,选择新建以创建新的工作表模板:

    Picture10.png

  2. 指定导出文件时将为工作表提供的名称

如果使用上传的 Excel 文件作为模板,将使用您的 Excel 模板文件中定义的工作表名称,而不会使用您在此处输入的名称。有关详细信息,请参阅使用上传的 Excel 文件作为模板

  1. 配置要导出的行对象并设置对模板输入对象的引用(如果使用输入对象)。此实体类型的每个对象都将保存为工作表中的一行。
  2. 配置Start retrieved data at row以设置应导出数据的序号。

此设置可能会修剪正在导出的结果集,因为导出将从该值转到数据列表的末尾

  1. 选择导出是否应仅导出不同的数据或允许重复数据
  2. 指定列默认宽度行默认高度(或将它们保留为默认值)。
  3. 指定提取是否将使用静态数据

如果使用静态数据,将在下面进行配置。

  1. 指定是否将表示要应用于导出数据的预定义样式的默认文本样式
  2. 指定默认标题文本样式是否将表示要应用于标题数据的预定义样式:

指定样式将在下面的部分中讨论。

6.4 配置动态列数据

要配置动态列数据,请执行以下步骤:

  1. 在“列数据”选项卡上,选择新建以创建新的导出列:

    Picture11.png

  2. 列号将自动设置,但可以覆盖为所需的序号。
  3. 为列定义名称。这将是导出时的列标题
  4. 指定检索类型以确定此列是属性还是引用。
  5. 指定Select 属性以标识将存储在此列中的行对象的属性。
  6. 指定列是否应生成聚合。请注意,只能聚合十进制、整数和长整数类型。

6.5 配置Sheet中的静态数据

要配置工作表中的静态数据,请执行以下步骤:

  1. 打开静态数据选项卡并选择新建以创建新的导出列。

    Picture12.png

  2. 指定应放置静态值的
  3. 名称字段中输入单元格的名称。
  4. 通过选择单元格是静态文本、对象数据还是聚合函数来指定类型。此示例使用静态文本(在选择时将名称字段更改为Excel 文本)。
  5. 指定应用于单元格的样式

6.6 配置自定义单元格格式和样式

要为单元格配置自定义格式和样式,请执行以下步骤:

  1. 返回新模板的主页,单击样式部分中的新建以创建可应用于 Excel 导出中的任何数据的新样式:

    Picture13.png

  2. 指定将应用于单元格的样式的属性。

如果您使用上传的 Excel 文件作为模板,您在此处选择的背景颜色(如果该值不是none )将覆盖模板中的背景颜色。

  1. 单击Save以使样式可用于动态列、静态列和标题。

7 通过微流调用 Excel 导出模

在应用程序中调用新创建的 Excel 导出模板。要检索模板并生成文档,请执行以下步骤:

  1. 创建一个微流,它采用需要导出的对象的入站参数,或者将该对象检索到微流中。
  2. 在微流中,检索一个对象,它是之前设置的用于导出的模板。

    Picture14.png

  3. 在微流中,调用GenerateExcelDocJava 操作(可从模块的JavaActions文件夹中获得)以将所需的对象传递给模块。

    Picture15.png

  4. 在微流中,下载生成的 FileDocument 对象。微流应与此类似:

    Picture16.png

8 运行微流

目前该应用程序现在缺少两件事:没有数据可以下载和没有办法运行微流

请参阅以下部分以添加这些缺失的内容。

8.1 创建数据

为了允许输入一些数据,需要生成一些页面,然后按照以下步骤在其中输入一些数据:

  1. 右键单击域模型中的Policy实体并选择Generate overview pages… 。
  2. 选择Policy并单击确定
  3. 通过主页或应用导航将生成的概览页面链接到应用。
  4. 运行应用程序并输入一些数据以创建策略对象。

8.2 运行微流

要运行在上面创建的微流,需要创建另一个添加到导航中的微流。这个微流应该创建一个PolicyDoc对象并使用循环将其与现有的Policy对象相关联,确保所有关联在循环之后提交,并将这个 PolicyDoc 作为参数传递给微流。这将导出与PolicyDoc关联的所有 Policy 对象。

新微流应类似于以下内容:

Picture17.png

四、应用展示

创建实体如下

Picture18.png

创建模板

Picture19.png

创建微流生成和下载Excel

Picture21.png

下载的文档如下

Picture22.png

五、参考资料

  1. Excel导出组件 Marketplace介绍https://marketplace.mendix.com/link/component/726
  2. MX Model Reflection组件MarketPlace介绍https://marketplace.mendix.com/link/component/69
  3. Excel导出具体文档参考Excel Exporter | Mendix DocumentationExport to Excel | Mendix Documentation

关于Mendix公司

Mendix公司,a Siemens business,正在迅速成为企业数字化转型的推动者。其业内领先的低代码平台和全方位的生态系统整合最先进的技术,帮助企业创造出提高互动性、简化操作和克服IT瓶颈的解决方案。Mendix公司是权威行业分析师眼中的领导者和远见者,也是一个云原生、开放、可扩展、敏捷和饱经考验的平台。从人工智能和增强现实,到智能自动化和原生移动,Mendix公司已成为数字化先行企业的骨干。Mendix公司企业低代码平台已被全球4000多家领先的公司采用。

           

猜你喜欢

转载自blog.csdn.net/Mendix/article/details/132096748