excel数据导入

来源:互联网 发布:c语言字符串长度函数 编辑:程序博客网 时间:2024/05/17 08:41


HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(fileTempPath));//创建工作簿的引用
HSSFSheet sheet = wookbook.getSheet("Sheet1");
//获取到Excel文件中的所有行数
int rows = sheet.getPhysicalNumberOfRows();
//遍历行
for (row_num = 1; row_num < rows; row_num++){
// 读取左上端单元格
HSSFRow row = sheet.getRow(row_num);
//行不为空
if(row!=null){
//获取到Excel文件中的所有的列
int cells = row.getPhysicalNumberOfCells();
HrEmployeeInfoVo emp = new HrEmployeeInfoVo();
//遍历列
for (cell_num = 0; cell_num < cells; cell_num++){
//获取列的值
HSSFCell cell = row.getCell(cell_num);
//列不为空时
if (cell != null){
String[] values = getSheetUnitValue(cell,row_num,cell_num,errorLogPath);
String value = values[0];
String valueError = values[1];
if("false".equals(valueError)){
valid = valid+1;
}
//判断,类型转换
switch(cell_num){
case 0://姓名
emp.setName(value);

break;
case 1: //性别
if(value.equals("男")){
value = "1";
emp.setSex(value);
}else if(value.equals("女")){
value="0";
emp.setSex(value);
}else{
//打印错误记录
this.printErrorLog(errorLogPath, row_num, cell_num);
valid = valid+1;
}
emp.setSex_name(value);
break;
case 2: //出生年月
emp.setBirthday(value);
System.out.println("/////////////////"+emp.getBirthday());
break;
case 3://籍贯
emp.setPlaceOrign(value);
break;
case 4://政治面貌
emp.setPoliticalAffiliation(value);
break;
case 5://名族
emp.setMinorities(value);
break;
case 6://身份证号
Pattern idNumPattern = Pattern.compile("(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])");
Matcher idNumMatcher = idNumPattern.matcher(value);
if(!idNumMatcher.matches()){//如果不匹配
this.printErrorLog(errorLogPath, row_num, cell_num);
valid = valid+1;
}
emp.setIdentityCardNo(value);
break;
case 7://户口所在地
emp.setResidenceAddress(value);
break;
case 8://工作单位
Dept unit = this.getUnitByUnitName(deptList, value);
if(unit==null){
//打印错误记录
this.printErrorLog(errorLogPath, row_num, cell_num);
valid = valid+1;
}
emp.setUnitName(value);
break;
case 9://部门
//emp.setDeptName(value);
HSSFCell prevCell = row.getCell((short)8);
String unitName = prevCell.getStringCellValue();
emp.setUnitName(unitName);
Dept dept = this.getDeptByDeptName(deptList, value,unitName);
if(dept==null){
//打印错误记录
this.printErrorLog(errorLogPath, row_num, cell_num);
valid = valid+1;
}else{
emp.setDeptID(dept.getId());
emp.setDeptName(value);
}
break;
case 10://职务
emp.setBusiness(value);
break;
case 11://固定电话
emp.setMobilePhone(value);
break;
case 12://手机
emp.setTelePhone(value);
break;
case 13://通讯地址
emp.setCommuAddress(value);
break;
case 14://备注
emp.setRemark(value);
break;
default:
break;
}
}
}
empList.add(emp);//将一行数据的对象存到empList中
}
}
} catch (Exception e) {
//this.printErrorLog(errorLogPath, row_num, cell_num);
////数据格式错误
//return true;
e.printStackTrace();
}
if(valid>0){
return true; //验证不通过
}else{
//验证通过,将list数据放到session空间中
HttpSession session = request.getSession();
session.setAttribute("imEmpList", empList);
return false;
}


原创粉丝点击