若依管理系統匯出Excel時新增沒有的列和關聯碼錶顯示中文進行匯出
阿新 • • 發佈:2020-07-30
場景
在使用若依後臺管理系統時對於單表會自動生成匯出相關的介面。
此時如果直接進行匯出會匯出相應的實體類中添加了
@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"
這樣就可以了。