导出:
public void exportExcel(HttpServletResponse response) {
//查询列表数据
ExcelWriter excelWriter = null;
try {
List<SysSystem> sysSystems = sysSystemService.list();
List<SysMenu> sysMenuList = sysMenuService.list();
List<SysMenuResource> sysMenuResources = sysMenuResourceService.list();
List<OauthClientDetails> oauthClientDetails = oauthClientDetailsService.list();
//response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
String fileName = new String("应用相关配置.xls".getBytes("GB2312"), "ISO_8859_1");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
ServletOutputStream out = response.getOutputStream();
excelWriter = EasyExcel.write(out).build();
WriteTable writeTable = EasyExcel.writerTable(0).head(SysSystemVO.class).needHead(true).build();
WriteSheet writeSheet = EasyExcel.writerSheet(0, "sysSystem").build();
WriteTable writeTable1 = EasyExcel.writerTable(1).head(SysMenuVO.class).needHead(true).build();
WriteSheet writeSheet1 = EasyExcel.writerSheet(1, "sysMenu").build();
WriteTable writeTable2 = EasyExcel.writerTable(2).head(SysMenuResourceVO.class).needHead(true).build();
WriteSheet writeSheet2 = EasyExcel.writerSheet(2, "sysMenuResource").build();
WriteTable writeTable3 = EasyExcel.writerTable(3).head(OauthClientDetailsVO.class).needHead(true).build();
WriteSheet writeSheet3 = EasyExcel.writerSheet(3, "oauthClientDetails").build();
excelWriter.write(JSON.parseArray(JSON.toJSONString(sysSystems), SysSystemVO.class), writeSheet, writeTable);
excelWriter.write(JSON.parseArray(JSON.toJSONString(sysMenuList), SysMenuVO.class), writeSheet1, writeTable1);
excelWriter.write(JSON.parseArray(JSON.toJSONString(sysMenuResources), SysMenuResourceVO.class), writeSheet2, writeTable2);
excelWriter.write(JSON.parseArray(JSON.toJSONString(oauthClientDetails), OauthClientDetailsVO.class), writeSheet3, writeTable3);
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭流
if (excelWriter != null) {
excelWriter.finish();
}
}
}
导入:
@Transactional(rollbackFor = Exception.class) public void importExcel(MultipartFile file, Integer type) { /* * 初始化变量 * */ List<SysSystem> list = new ArrayList<>(1); List<SysMenu> list1 = new ArrayList<>(1); List<SysMenuResource> list2 = new ArrayList<>(1); List<OauthClientDetails> list3 = new ArrayList<>(1); try { List<ReadSheet> readSheetList = EasyExcel.read(file.getInputStream()).build().excelExecutor().sheetList(); for (ReadSheet readSheet : readSheetList) { EasyExcel.read(file.getInputStream(), SysSystemVO.class, new AnalysisEventListener<SysSystemVO>() { @Override public void invoke(SysSystemVO sysSystemVO, AnalysisContext analysisContext) { SysSystem sysSystem = new SysSystem(); BeanUtils.copyProperties(sysSystemVO, sysSystem); list.add(sysSystem); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }) .sheet().sheetNo(0) .doRead(); EasyExcel.read(file.getInputStream(), SysMenuVO.class, new AnalysisEventListener<SysMenuVO>() { @Override public void invoke(SysMenuVO sysMenuVO, AnalysisContext analysisContext) { SysMenu sysMenu = new SysMenu(); BeanUtils.copyProperties(sysMenuVO, sysMenu); list1.add(sysMenu); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }) .sheet().sheetNo(1) .doRead(); EasyExcel.read(file.getInputStream(), SysMenuResourceVO.class, new AnalysisEventListener<SysMenuResourceVO>() { @Override public void invoke(SysMenuResourceVO sysMenuResource, AnalysisContext analysisContext) { SysMenuResource menuResource = new SysMenuResource(); BeanUtils.copyProperties(sysMenuResource, menuResource); list2.add(menuResource); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }) .sheet().sheetNo(2) .doRead(); EasyExcel.read(file.getInputStream(), OauthClientDetailsVO.class, new AnalysisEventListener<OauthClientDetailsVO>() { @Override public void invoke(OauthClientDetailsVO oauthClientDetailsVO, AnalysisContext analysisContext) { OauthClientDetails oauthClientDetails1 = new OauthClientDetails(); BeanUtils.copyProperties(oauthClientDetailsVO, oauthClientDetails1); list3.add(oauthClientDetails1); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }) .sheet().sheetNo(3) .doRead(); } /* *批量保存,存在更新,否则插入 * * */ if (type != null) { sysSystemService.saveOrUpdateBatch(list); sysMenuService.saveOrUpdateBatch(list1); sysMenuResourceService.saveOrUpdateBatch(list2); oauthClientDetailsService.saveOrUpdateBatch(list3); } } catch (Exception e) { e.printStackTrace(); } }