场景

在使用若依后台管理系统时对于单表会自动生成导出相关的接口。

此时如果直接进行导出会导出相应的实体类中添加了

@Excel注解的属性。

自动生成导出接口示例:

    @GetMapping("/export")
    public AjaxResult export(KqDksz kqDksz)
    {
        List<KqDksz> list = kqDkszService.selectKqDkszList(kqDksz);
        ExcelUtil<KqDksz> util = new ExcelUtil<KqDksz>(KqDksz.class);
        return util.exportExcel(list, "dksz");
    }

此时会查询出一个对象的List,然后将这个List作为数据源传递给导出的工具类。

在对象的Model中

 

 

此时如果直接进行导出的话,会导出带有@Excel注解的属性。

导出的ExceL如下

 

 

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

如果要想多导出一些属性或者将上面的状态等需要码表关联的属性关联后再进行导出。

可以通过修改Mybatis的查询的xml来实现。

比如数据库中只有存放的工号,而需要导出姓名。

此时可以在实体类中添加姓名xm这个属性并添加@Excel注解。

然后在selectKqDkszList查询数据List时关联人员表查询出姓名来

                SELECT
                    b.id,
                    b.gh,
                    j.xm,
                FROM
                    kq_bcbdls b
                    LEFT JOIN dp_jbxx j ON b.gh = j.gh

这样就能在导出时添加姓名列了。

如果想将状态的数字转换成码表的中文状态。

同理状态属性设置为String 然后关联码表或者字典表查询出中文显示并赋值

                SELECT
                    b.id,
                    b.gh,
                    j.xm,
                    s2.dict_label AS zt,
                FROM
                    kq_bcbdls b
                    LEFT JOIN dp_jbxx j ON b.gh = j.gh
                    LEFT JOIN sys_dict_data s2 ON b.zt = s2.dict_value
                    AND s2.dict_type = "kqgl_bcbdls_zt"

这样就可以了。

posted on 2020-07-30 15:39  霸道流氓  阅读(1361)  评论(0编辑  收藏  举报

Live2D