若依管理系統導出Excel時添加沒有的列和關聯碼表顯示中文進行導出


場景

在使用若依后台管理系統時對於單表會自動生成導出相關的接口。

此時如果直接進行導出會導出相應的實體類中添加了

@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"

這樣就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM