-------------------------------------------前台页面---------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
----------------------------------------------后台---------------------------------------------------
--------------验证上传文件返回成功保存文件并返回filepath------------
@RequestMapping("import")
@ResponseBody
public Map imports(@RequestParam MultipartFile file,Model model, HttpSession session,String i) {
Map resMap = new HashMap();
VUser user=(VUser)session.getAttribute("user_session");
resMap.put("user", user);
model.addAttribute("message", "File '" + file.getOriginalFilename());
System.out.println(i);
// String bol="yes";
String fileOriginalName = file.getOriginalFilename();
String statusCode = "200", message = "上传成功";
List list=new ArrayList<>();
String type=null;
try {
if (!StringUtils.isEmpty(fileOriginalName)) {
// FileUtil fileHelper = new FileUtil();
// String decodeFileName = fileHelper.getDecodeFileName(fileOriginalName);// 文件名编码
// String mFilePath = session.getServletContext().getRealPath("") + decodeFileName; // 取得服务器路径
// mFilePath = mFilePath.substring(0, 2) + "\\njdtjsis" + "\\hiddenDanger\\" + decodeFileName;
// fileHelper.createFile(mFilePath, file.getBytes());
// FileInputStream fileIn = new FileInputStream(mFilePath);
//----------------------------------------------------------------
Workbook wb0=null;
if(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")).equals(".xlsx")){
wb0=new XSSFWorkbook(file.getInputStream());
type="ByteArrayInputStream";
}else if(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")).equals(".xls")){
wb0=new HSSFWorkbook(file.getInputStream());
type="FileInputStream";
}
Sheet sheet = wb0.getSheetAt(0);
for(Row row:sheet){
if(row.getCell(1)==null){
break;
}
GxSysUser gxSysUser=new GxSysUser();
Cell cell0 = row.getCell(1);
Cell cell3 = row.getCell(3);
if(cell0!=null&&cell3!=null){
cell0.setCellType(Cell.CELL_TYPE_STRING);
cell3.setCellType(Cell.CELL_TYPE_STRING);
}
GxSysUser u=sysUserManager.findUniqueBy("userId",row.getCell(1).getStringCellValue());
GxSysUser u1=sysUserManager.findUniqueBy("userCardId",row.getCell(3).getStringCellValue());
if(u!=null||u1!=null){
gxSysUser.setUserName(row.getCell(0).getStringCellValue());
gxSysUser.setUserId(row.getCell(1).getStringCellValue());
gxSysUser.setUserSex(row.getCell(2).getStringCellValue());
gxSysUser.setUserCardId(row.getCell(3).getStringCellValue());
gxSysUser.setUserType(row.getCell(4)!=null?row.getCell(4).getStringCellValue():"");
if(u!=null){
gxSysUser.setUserId("用户名已存在");
}
if(u1!=null){
gxSysUser.setUserCardId("身份证已存在");
}
list.add(gxSysUser);
}
}
if(list.size()==0){
FileUtil fileHelper = new FileUtil();
String decodeFileName = fileHelper.getDecodeFileName(fileOriginalName);// 文件名编码
String mFilePath = session.getServletContext().getRealPath("") + decodeFileName; // 取得服务器路径
mFilePath = mFilePath.substring(0, 2) + "\\njdtjsis" + "\\userinfo\\" + decodeFileName;
fileHelper.createFile(mFilePath, file.getBytes());
resMap.put("fileUrl",mFilePath);
resMap.put("flog",false);
}else {
resMap.put("flog",true);
}
file.getInputStream().close();
}
} catch (Exception e) {
statusCode = "300";
message = "上传失败";
resMap.put("flog",true);
// bol="no";
e.printStackTrace();
}
resMap.put("list", list);
resMap.put("type",type);
resMap.put("statusCode", statusCode);
resMap.put("message", message);
return resMap;
}
--------------通过返回filepath打开Excel并解析入库------------
@RequestMapping("import-save")
public @ResponseBody
Map UserSaveImport(String fileUrl,HttpSession session,String orgId,String type) {
Map resMap = new HashMap();
String statusCode = "200", message = "操作成功";
VUser gxuser = (VUser) (session.getAttribute("user_session") == null ? null
: session.getAttribute("user_session"));
Workbook wb0=null;
try {
Map parameterMap = new HashMap();
InputStream in= new FileInputStream(fileUrl);
if(type.equals("ByteArrayInputStream")){
wb0=new XSSFWorkbook(in);
}else {
wb0=new HSSFWorkbook(in);
}
Sheet sheet = wb0.getSheetAt(0);
for(Row row:sheet) {
if(row.getCell(1)==null){
break;
}
GxSysUser gxSysUser=new GxSysUser();
gxSysUser.setRowId(null);
gxSysUser.setUserName(row.getCell(0).getStringCellValue());
gxSysUser.setUserShowName(row.getCell(0).getStringCellValue());
row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
gxSysUser.setUserId(row.getCell(1).getStringCellValue());
gxSysUser.setUserMobileNum(row.getCell(1).getStringCellValue());
gxSysUser.setUserEnName("123");
gxSysUser.setUserSex(row.getCell(2).getStringCellValue().equals("男")?"1":"0");
gxSysUser.setUserCardId(row.getCell(3).getStringCellValue());
gxSysUser.setUserType(row.getCell(4)!=null?row.getCell(4).getStringCellValue():"");
gxSysUser.setCreateTime(new Timestamp(new Date().getTime()));
GxSysUserInOrgCopy gxSysUserInOrgCopy = new GxSysUserInOrgCopy();
gxSysUserInOrgCopy.setCreateTime(new Timestamp(new Date().getTime()));
gxSysUserInOrgCopy.setCreateUserId(gxuser != null ? gxuser
.getUserId() : "");
gxSysUserInOrgCopy.setOrgId(orgId);
gxSysUserInOrgCopy.setUserId(gxSysUser.getUserId());
String hql = "SELECT max(t.dataOrder) FROM GxSysUserInOrgCopy t where t.orgId=?";
List maxNum = gxSysUserInOrgCopyManager.find(hql, orgId);
int num = 1;
if (maxNum.get(0)==null) {
num=Integer.parseInt(orgDataOrderDefaultManager.findUniqueBy("orgId",orgId).getDataOrder());
} else {
Object obj = maxNum.get(0);
num = !StringUtils.validateLong(obj) ? 1 : new BigDecimal(
obj.toString()).intValue() + 1;
}
gxSysUserInOrgCopy.setDataOrder(num);
gxSysUserInOrgCopyManager.save(gxSysUserInOrgCopy);
gxUserManager.save(gxSysUser);
}
} catch (Exception e) {
statusCode = "300";
message = "操作失败";
e.printStackTrace();
}
resMap.put("statusCode", statusCode);
resMap.put("message", message);
resMap.put("closeCurrent", true);
resMap.put("divid", "user-manager-user-list1");
return resMap;
}