From 9b9e48e0e94c1a3ad4e5f9279063a28cc4053935 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Wed, 25 Aug 2021 17:50:38 +0800 Subject: [PATCH] =?UTF-8?q?delete=20[JeroController.java]=20excel=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E5=AF=BC=E5=87=BA=E4=BA=BA=20add=20[JeroController.ja?= =?UTF-8?q?va]=E5=AF=BC=E5=87=BAExcel=E6=A8=A1=E6=9D=BF=EF=BC=8C=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=AF=BC=E5=87=BAexcel=EF=BC=8C=E9=80=9A?= =?UTF-8?q?=E8=BF=87excel=E8=8E=B7=E5=8F=96=E5=AF=BC=E5=85=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/JeroController.java | 85 ++++++++++++++++++- 1 file changed, 82 insertions(+), 3 deletions(-) diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java index fb5c88fc..959b6d62 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java @@ -2,6 +2,7 @@ package com.jero.common.system.base.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.common.exception.JeroBootException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.PropertyUtils; import org.apache.shiro.SecurityUtils; @@ -23,6 +24,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -69,7 +71,7 @@ public class JeroController> { mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下 mv.addObject(NormalExcelConstants.CLASS, clazz); //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- - ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + ExportParams exportParams=new ExportParams(title, title); exportParams.setImageBasePath(upLoadPath); //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- mv.addObject(NormalExcelConstants.PARAMS,exportParams); @@ -113,11 +115,11 @@ public class JeroController> { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { - MultipartFile file = entity.getValue();// 获取上传文件对象 + // 获取上传文件对象 + MultipartFile file = entity.getValue(); ImportParams params = new ImportParams(); params.setTitleRows(2); params.setHeadRows(1); - params.setNeedSave(true); try { List list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params); //update-begin-author:taoyan date:20190528 for:批量插入数据 @@ -141,4 +143,81 @@ public class JeroController> { } return Result.error("文件导入失败!"); } + + /** + * 导出Excel模板 + */ + public ModelAndView exportTemplate(Class exportClass, String title) { + // AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, exportClass); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams(title, title)); + mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList()); + return mv; + } + + /** + * 自定义导出excel + * 传入组装好的QueryWrapper + */ + protected ModelAndView customExportXls(QueryWrapper queryWrapper, Class clazz, String title) { + // Step.1 组装查询条件 + // Step.2 获取导出数据 + List pageList = service.list(queryWrapper); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, clazz); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams(title, title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + return mv; + } + + /** + * 通过excel获取导入数据 + * + * @param request + * @return + */ + protected List getExcelData(HttpServletRequest request, Class clazz) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + // 获取上传文件对象 + MultipartFile file = entity.getValue(); + //校验文件名 + String originalFilename = file.getOriginalFilename(); + if (originalFilename != null) { + String substring = originalFilename.substring(originalFilename.lastIndexOf(".")); + if (!".xlsx".equals(substring)&&!".xls".equals(substring)) { + throw new JeroBootException("文件类型错误:" + "请上传.xlsx或.xls文件!"); + } + } else { + throw new JeroBootException("文件错误:" + "文件名丢失,请上传正确的文件!"); + } + ImportParams params = new ImportParams(); + params.setTitleRows(1); + params.setHeadRows(1); + try { + return ExcelImportUtil.importExcel(file.getInputStream(), clazz, params); + } catch (Exception e) { + throw new JeroBootException("文件导入失败:" + e.getMessage()); + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + throw new JeroBootException("文件导入失败!"); + } }