您的位置:首页 > 运维架构 > Apache

导入数据 org.apache.poi.hssf.usermodel.HSSFWorkbook

2017-03-09 10:43 417 查看
HSSFWorkbook book = null;
try {
book = new HSSFWorkbook(file.getInputStream());
} catch (IOException e) {
log.error("导入的文件存在异常,无法转换为excel文件对象!",e);
return 1;
}

HSSFSheet sheet = book.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
log.info("sheet name:"+ sheet.getSheetName()+", lastRowNum:"+lastRowNum);

if(lastRowNum < 1){
return 2;
}

String username = UserSession.getUser().getUserName();
List<DisableCustomer> disableCustomerList = new LinkedList<DisableCustomer>();

for(int i=1;i<lastRowNum+1;i++){
HSSFRow row = sheet.getRow(i);
String cardNo = Common.getCellValue(row.getCell(0));
if(StringUtils.isEmail(cardNo)){
log.info("第【"+i+"】行月结卡号为空,结束读取操作,开始插入数据库.");
break;
}
if(!Common.isCardNo(cardNo)){
log.error("非法月结卡号:【" + cardNo+"】");
return 3;
}
String reason = Common.getCellValue(row.getCell(1));
if(StringUtils.isEmail(reason)){
log.error("导入永久取消权限中数据中存在空值!");
continue;
}
log.info("cardNo:"+cardNo+"reason:"+reason);
disableCustomerList.add(new DisableCustomer(StringUtils.getUUID(32), cardNo, reason, username));
}

cancelPermissionsMapper.saveBatchDisableCustomer(disableCustomerList);

log.info("list size:" + disableCustomerList.size());

return 0;


/**
* 获取表格的值(全部转换为String类型,长度超出100会截断)
* @param cell
* @return
* @throws UnsupportedEncodingException
*/
public static String getCellValue(Cell cell) {
String value;
if(cell == null) return "";
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC: //数字
if(HSSFDateUtil.isCellDateFormatted(cell)){//是否为时间类型
Date d = cell.getDateCellValue();
DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
value = formater.format(d);
}else{
value = new DecimalFormat("#").format(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_STRING: //字符串
value = cell.getStringCellValue().trim();
break;
case Cell.CELL_TYPE_BOOLEAN: //Boolean
value = String.valueOf(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA: //公式
value = cell.getCellFormula();
break;
case Cell.CELL_TYPE_BLANK: //空值
value = "";
break;
case Cell.CELL_TYPE_ERROR: //故障
value = "";
break;
default:
value = "";
break;
}
return value;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: