poi 读取数据处理方式




poi读取数据的时候空格,字符数据,数字类型数据处理方式

  1. logger.info("============ExeclReader.readExeclToMapList() begin===========");
  2. try {
  3. for (int i = st.getFirstRowNum(); i <= st.getLastRowNum(); i++) {
  4. row=st.getRow(i);
  5. List<HashMap<String, String>> rowMap = new ArrayList<HashMap<String,String>>();
  6. for (int j = row.getFirstCellNum(); j < row.getLastCellNum(); j++) {
  7. HashMap<String,String> cellMap = new HashMap<String, String>();
  8. cellMap.put("rowNum", String.valueOf(i+1));
  9. cellMap.put("ColumnNum", String.valueOf(j+1));
  10. //if(row.getCell(j).getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
  11. // cellMap.put("val", String.valueOf((int)Math.floor(row.getCell(j).getNumericCellValue())));
  12. //}else{
  13. if(row.getCell((short) j).getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
  14. BigDecimal bd = new BigDecimal(row.getCell((short) j).getNumericCellValue());
  15. String val= bd.toPlainString();
  16. if(val.indexOf(".0") > 0){
  17. val = val.substring(0,val.indexOf(".0")).trim();
  18. }
  19. cellMap.put("val", val);
  20. }else{
  21. cellMap.put("val", StringUtil.trim(row.getCell((short)j)==null?"":row.getCell((short)j).getStringCellValue()));
  22. }
  23. //}
  24. rowMap.add(cellMap);
  25. }
  26. dataMap.add(rowMap);
  27. }
  28. } catch (Exception e) {
  29. e.printStackTrace();
  30. throw new Exception("读取execl 数据异常,请检查!!!");
  31. }
  32. logger.info("============ExeclReader.readExeclToMapList() end===========");

原文地址:https://www.cnblogs.com/signheart/p/6595683.html