java+layui的Excel数据导入
页面
upload.render({
elem: '#import'
,url: '/risen/phgov/personManager/personBase/excelDataUpload.do' //改成您自己的上传接口
,data: {}
,accept: 'file' //允许上传的文件类型
,acceptMime: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
,exts: 'xls|xlsx' //文件后缀
,size: 0 //最大允许上传的文件大小
,done: function(res, index, upload){ //上传后的回调
layer.alert(res.msg);
table.reload('test', { });
return;
}
});
java
@RequestMapping("/excelDataUpload")
@ResponseBody
public Map<String,String> excelDataUpload(MultipartFile file, HttpServletRequest request) {
getPersonBaseService().excelDataUpload(file, request);
Map<String,String> map = new HashMap<>();
map.put("msg","导入完成!");
return map;
}
@Override
public void excelDataUpload(MultipartFile file, HttpServletRequest request) {
InputStream input = null;
Workbook wb = null;
try {
input=file.getInputStream();
String fileName=file.getOriginalFilename();
if(fileName.endsWith(".xls")){ //Excel 2003
wb = new HSSFWorkbook(input);
}else if(fileName.endsWith(".xlsx")){ // Excel 2007/2010
wb = new XSSFWorkbook(input);
}
//读取页
for(int sheetNum=0;sheetNum<wb.getNumberOfSheets();sheetNum++){
Sheet sheet = wb.getSheetAt(sheetNum);
if(sheet==null){
continue;
}
//读取行
for(int rowNum=1;rowNum<sheet.getLastRowNum()+1;rowNum++){
Row row= sheet.getRow(rowNum);
if(row!=null){
for(int cellNum=0;cellNum<row.getLastCellNum();cellNum++){
Cell cell = row.getCell(cellNum);//获取每一个单元格具体值,可根据需求转成任意数据类型
System.out.println(cell);
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
需要注意的是,需要在spring-mvc.xml中加如下配置,后台才能正常接收到文件
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">