excel导入(HSSFWorkbook)

Public String DaoRu(HttpServletRequest,Model model) throws IOException{
//将HttpServletRequest转型为MultipartHttpServletRequest,不转型获取不到文件名。
MultipartHttpServletRequest mrequest=(MultipartHttpServletRequest)request ;
//获得文件
MultipartFile file=mrequest.getFile("fileinput");
//获取输入流
InputStream in=file.getInputStream();
HSSFWorkbook hssfworkbook=new HSSFWorkbook(in);
HSSFCell cell=null;
int cellType;
String result=null;
//数据格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<String> list=new ArrayList<String>(); //将导入人员姓名存入list中,方便前台显示!

for(int SheetNum=0;SheetNum<hssfworkbook.getNumberOfSheets();SheetNum++){
//获取excel表格中的sheet页
HSSFSheet hssfsheet =hssfworkbook.getSheetAt(SheetNum);
if(hssfsheet==null){
continue;
}else{
for(int rowNum=1;rowNum<=hssfSheet.getLastRowNum();rowNum++){
//创建一个行对象。
HSSFRow hssfrow=hssfsheet.getRow(rowNum);
//实体对象
TRyJbxxDsh t=new TRyJbxxDsh();
if(hssfrow==null){
continue;
}else{
try{
//一般下标是从0开始,但是excel表格第一行都是标题,不用读进来,所以从下标1开始。
//replaceAll(" ","");去除姓名中的空格。
String xm=hssfrow.getCell(1).getStringCellValue().replaceAll(" ","");
t.setXm(xm);
String xb=hssfrow.getCell(2).getStringCellValue();
t.setXb(xb);
String sfzh=hssfrow.getCell(3).getStringCellValue();
t.setSfzh(sfzh);


//转换表格中日期类型的数据
cell =hssfRow.getCell(4);//获取单元格对象。
cellType = cell.getCellType();//获取单元格格式
result ="";
Date csrq=null;
//数据格式为date类型
if(cellTypy==HSSFCell.CELL_TYPE_NUMERIC){
Date date=cell.getDateCellValue();
result = (date.getYear() + 1900) + "-" + (date.getMonth() + 1)+ "-" + date.getDate();
}else if(cellType==HSSFCell.CELL_TYPE_BLANK){
//空值
result="";
}else if(cellType == HSSFCell.CELL_TYPE_STRING){
//string类型
                String date = cell.getStringCellValue();
              result = date.replaceAll("[年月]", "-").replace("日", "").trim();
}
if(!"".equals(result) && result != null){
try {
csrq = sdf.parse(result);
} catch (ParseException e1) {
e1.printStackTrace();
}
}
t.setCsrq(csrq);


//将插入的一条信息的姓名放到list返回前台提示
list.add(xm);
//插入一条人员信息,insertOne()是另外一个方法。
insertOne(t);
}catch (Exception e) {
                String msg="导入excel表格格式有问题,请确认后重试!";
                model.addAttribute("msg",msg);
                return "/smz/renyuandaoru.jsp";
                }
}
}
}
}
String msg = "新增人员成功!人员姓名为:"+list.toString();
model.addAttribute("msg", msg);
return "/smz/renyuandaoru.jsp";


}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值