文件上传功能前端代码参考:http://www.cnblogs.com/mora1988/p/5546489.html
控制层Controller代码如下:
@RequestMapping(value = "/getExcelData", method = RequestMethod.POST)
@ResponseBody
public String getExcel(HttpServletRequest request, HttpServletResponse response,TestExcel testExcel) throws Exception{
String info = "";
//创建一个通用的多部分解析器.
CommonsMultipartResolver commonsMultipartResolver = new
CommonsMultipartResolver(request.getSession().getServletContext());
if(commonsMultipartResolver.isMultipart(request)){
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Iterator<String> iterator = multipartRequest.getFileNames();
while(iterator.hasNext()){
MultipartFile multipartFile = multipartRequest.getFile(iterator.next());
if(multipartFile.getOriginalFilename() == null || multipartFile.getOriginalFilename().equals("")){
continue;
}
//上传文件到这里,获取该文件的文件流接下来就可以通过这个文件流对文件进行相关的操作:
InputStream is = multipartFile.getInputStream();
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is); //表示整个excel
//循环每一页,并处理当前循环页
for(int numSheet = 0;numSheet<hssfWorkbook.getNumberOfSheets();numSheet++){
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet); //HSSFSheet表示每一页
if(hssfSheet == null){
continue;
}
//处理当前页,循环读取每一行
for(int rowNum = 0;rowNum<=hssfSheet.getLastRowNum();rowNum++){
HSSFRow hssfRow = hssfSheet.getRow(rowNum); //HSSFRow表示行
int minColIx = hssfRow.getFirstCellNum();
int maxColIx = hssfRow.getLastCellNum();
//遍历该行,获取处理每个cell的值
for(int colIx = minColIx;colIx<maxColIx;colIx++){
HSSFCell cell = hssfRow.getCell(colIx);
if(cell!=null){
String c = cell.toString();
//判断字符串是否包含数字
Pattern p = Pattern.compile(".*\\d+.*");
Matcher m = p.matcher(c);
if(m.matches()){
testExcel.setRac_code(cell.getStringCellValue());
}else{
testExcel.setRac_description(cell.getStringCellValue());
}
}
}
if(!"".equals(testExcel.getRac_code()) && testExcel.getRac_code()!=null && !"".equals(testExcel.getRac_description()) && testExcel.getRac_description()!=null){
//插入数据
excelService.insertExcel(testExcel);
}
}
}
is.close();
}
}
return info;
}
参考博客:http://blog.youkuaiyun.com/readiay/article/details/45540067