-
各模块增加excel下载模版,导出数据字典功能。
-
目的:进行批量导入,有字典数据参考
-
方式:
-
第一种方式:配置文件配置;
-
第二种方式:在参数管理菜单配置;
-
-
-
在nacos里的blade-dev.yaml配置,如有新的字典(追加即可)
1、后端代码实现,以“用户信息“模块为例
a、pom引用
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-excel-api</artifactId>
<version>${bladex.project.version}</version>
</dependency>
b、impl类加此注解,可实现动态读取yaml
@RefreshScope
c、读取yaml配置文件内容,导出所需字典数据
/**
* excel导出用户信息所需字典数据
*/
@Value("${exportexcel.baseUser}")
private String baseUserDict;
/**
* excel导出字典,sheet名称
*/
@Value("${exportexcel.sheetDict}")
private String sheetDict;
/**
* excel导出字典,父级字典key标识
*/
@Value("${exportexcel.dictKey}")
private String dictKey;
d、调用公共类,进行导出
/**
* 下载模版
* @param response
*/
@Overridepublic void downloadTemplate(HttpServletResponse response)
{
List<SheetData> sheetDataList = new ArrayList<>();
String fileName = "用户信息";
String sheetName0 = "用户信息";
SheetData sheetData = new SheetData(EmployeesExcel.class, sheetName0);
sheetDataList.add(sheetData);
sheetData = new SheetData(DictExcel.class, ExcelDictUtil.getSlDictList(baseUserDict, dictKey), sheetDict);
sheetDataList.add(sheetData);
ExcelMultipleSheetUtil.export(response, sheetDataList, fileName);
}
e、注意:需要增加导出“字典信息参考”的模块,如再操作导入,需要修改导入功能的以下代码
将原代码sheet()改为sheet(0),读取第一个sheet。
EasyExcel.read(excel.getInputStream(), UploadTemplateStation.class, objectBaseDataListener).sheet(0).doRead();