//excel表格上传 如果报错请加上@RequestParam MultipartFile file
@RequestMapping(value = "/excel",method = RequestMethod.POST)
//用MultipartFile 来接收文件 mvc配置个解析器
// 前台文件上传type=file method=post enctype="multipart/form-data"
public String uploadExcel(MultipartFile file) throws IOException, InvalidFormatException, ParseException {
//创建一个列表
List<Archives> lists = new ArrayList<Archives>();
//装换时间格式用
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//加载文件file.getInputStream()进入内存
Workbook wb= WorkbookFactory.create(file.getInputStream());
//getNumberOfSheets获取表格目录的长度
for (int i = 0; i <wb.getNumberOfSheets() ; i++) {
//获取表格目录的数据
Sheet sheetAt = wb.getSheetAt(i);
if (sheetAt!=null){
//getFirstRowNum() excel开始索引 sheetAt.getLastRowNum()最大索引
for (int j = sheetAt.getFirstRowNum(); j <sheetAt.getLastRowNum()-1; j++) {
//获取每一行的数据
Row row = sheetAt.getRow(j);
//创建对应的对象
Archives archives=new Archives();
//row.getCell(0) 获取第一行 第一列元素 依次类推
// getStringCellValue() 获取字符串类型
String dnum = row.getCell(0).getStringCellValue();
archives.setDnum(dnum);
String landline = row.getCell(1).getStringCellValue();
archives.setLandline(landline);
String school = row.getCell(2).getStringCellValue();
archives.setSchool(school);
String zhuanye = row.getCell(3).getStringCellValue();
archives.setZhuanye(zhuanye);
String sosperson = row.getCell(4).getStringCellValue();
archives.setSosperson(sosperson);
Date biyedate = row.getCell(5).getDateCellValue();
String format = sdf.format(biyedate);
Date parse = sdf.parse(format);
archives.setBiyedate(parse);
String zzmm = row.getCell(6).getStringCellValue();
archives.setZzmm(zzmm);
String minzu = row.getCell(7).getStringCellValue();
archives.setMinzu(minzu);
//getStringCellValue() 获取字符串类型
String xueli = row.getCell(8).getStringCellValue();
archives.setXueli(xueli);
String email = row.getCell(9).getStringCellValue();
archives.setEmail(email);
//getNumericCellValue(); 获取数字类型
int empFk =(int) row.getCell(10).getNumericCellValue();
archives.setEmpFk(empFk);
String remake = row.getCell(11).getStringCellValue();
archives.setRemark(remake);
//getDateCellValue()获取时间类型
Date hirdate = row.getCell(12).getDateCellValue();
//转换成字符串
String format1 = sdf.format(hirdate);
//在转换成时间类型
Date parse1 = sdf.parse(format1);
//存入对象中
archives.setBiyedate(parse1);
//添加到列表中
lists.add(archives);
System.out.println();
}
}
}
//存入到数据库
archivesService.uploadExcel(lists);
System.out.println(lists);
return "redirect:/archives.jsp";
}
ssm框架之POI—Excel表格上传数据库
最新推荐文章于 2021-08-06 08:50:59 发布