导出主从明细

场景描述

  • 将主从数据集的记录以表单的形式导出到excel或word中
  • 对于多行主数据,有两种选择
    • 一行主数据导出一个文件,导出多个文件后,自动压缩成zip包
    • 一行主数据导出一个word页,导出一个word文件

实现思路

使用excel导出组件,设置为模板导出

默认导出数据集过滤后的全部数据,如果要导出选中的数据,则再添加一个数据集组件,用选中的行id过滤数据,导出这个数据集的数据

实现步骤

下面以导出订单及其明细介绍操作步骤,批量导出3个订单,系统生成订单.zip,解压后包括3个excel文件

打开其中一个excel文件,效果如下图

1 准备订单及其明细数据

订单表结构

订单明细表结构

订单表添加输出数据集

选择订单明细表

在页面上添加订单数据集,点编辑按钮设置数据列,选中订单的全部列和订单明细数据集orderd,这样模板中就可以通过t.orderd.xx获取到订单明细的数据了

2 准备模板

模板中包括表单数据和列表数据,excel模板和word模板写法不同

  • excel模板
    • 表单数据来自订单表(主表),使用”双大括号加列名“标识显示的列,例如:订单编号{{orderNo}}
    • 列表数据来自订单明细表(从表),使用{{$fe:maplist开始循环,使用”t.从表id.列名“标识显示的列,使用}}结束循环

  • word模板
    • 表单数据来自订单表(主表),使用”双大括号加列名“标识显示的列,例如:订单编号{{orderNo}}
    • 列表数据来自订单明细表(从表),使用{{?从表id}}开始循环,使用{{/从表id}}结束循环,使用{{列名}}标识显示的列,例如:产品{{productName}}

如果导入的列是图片需要加@前缀,如下

上传到数据集中备用

3 批量导出

添加excel导出组件

  • 导出数据选择订单数据集
  • 数据来源必须选择数据服务
  • 在页面中添加模板所在的数据集组件
  • 模板源设置的绑定数据列,选择模板所在的数据列

打开导出设置

  • 导出模式选择模板导出
  • 模板是xls文件,文件类型选择03版excel
  • 模板是xlsx文件,文件类型选择07版excel
  • 模板是docx文件,文件类型选择word
  • 需要批量导出,则选择每行一个文件
  • 需要批量打印,则选择每行一页(仅支持word模板)

调用excel导出组件的导出操作,即可导出

4 批量导出中使用不同的模板

可以根据数据来决定使用哪个模板,在模板表中增加标识列tag

上传每种标识对应的模板文件

标识中的内容和订单中某列的内容要一致,作为使用模板的依据,本例中订单表的customKind列内容作为模板标识

在excel导出组件的模板源设置中,设置网络地址如下

/main/dbrest/muban?$get=fexcelmb.stream(0)&tag=eq.${customKind}

其中

  • muban是模板数据集的标识
  • fexcelmb是模板数据集中的模板列名
  • tag是模板数据集中的模板标识列名
  • customKind是订单数据集中的存有模板标识数据的列名

results matching ""

    No results matching ""

    results matching ""

      No results matching ""