delete [JeroController.java] excel去除导出人
add [JeroController.java]导出Excel模板,自定义导出excel,通过excel获取导入数据
This commit is contained in:
+82
-3
@@ -2,6 +2,7 @@ package com.jero.common.system.base.controller;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.beanutils.PropertyUtils;
|
import org.apache.commons.beanutils.PropertyUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
@@ -23,6 +24,7 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -69,7 +71,7 @@ public class JeroController<T, S extends IService<T>> {
|
|||||||
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
|
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
|
||||||
mv.addObject(NormalExcelConstants.CLASS, clazz);
|
mv.addObject(NormalExcelConstants.CLASS, clazz);
|
||||||
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
|
//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);
|
exportParams.setImageBasePath(upLoadPath);
|
||||||
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
|
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
|
||||||
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
||||||
@@ -113,11 +115,11 @@ public class JeroController<T, S extends IService<T>> {
|
|||||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||||
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||||
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
||||||
MultipartFile file = entity.getValue();// 获取上传文件对象
|
// 获取上传文件对象
|
||||||
|
MultipartFile file = entity.getValue();
|
||||||
ImportParams params = new ImportParams();
|
ImportParams params = new ImportParams();
|
||||||
params.setTitleRows(2);
|
params.setTitleRows(2);
|
||||||
params.setHeadRows(1);
|
params.setHeadRows(1);
|
||||||
params.setNeedSave(true);
|
|
||||||
try {
|
try {
|
||||||
List<T> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
|
List<T> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
|
||||||
//update-begin-author:taoyan date:20190528 for:批量插入数据
|
//update-begin-author:taoyan date:20190528 for:批量插入数据
|
||||||
@@ -141,4 +143,81 @@ public class JeroController<T, S extends IService<T>> {
|
|||||||
}
|
}
|
||||||
return Result.error("文件导入失败!");
|
return Result.error("文件导入失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出Excel模板
|
||||||
|
*/
|
||||||
|
public ModelAndView exportTemplate(Class<T> 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<T>());
|
||||||
|
return mv;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义导出excel
|
||||||
|
* 传入组装好的QueryWrapper
|
||||||
|
*/
|
||||||
|
protected ModelAndView customExportXls(QueryWrapper<T> queryWrapper, Class<T> clazz, String title) {
|
||||||
|
// Step.1 组装查询条件
|
||||||
|
// Step.2 获取导出数据
|
||||||
|
List<T> 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<T> getExcelData(HttpServletRequest request, Class<T> clazz) {
|
||||||
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||||
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||||
|
for (Map.Entry<String, MultipartFile> 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("文件导入失败!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user