zoukankan      html  css  js  c++  java
  • POI读取所有行数和列数的数据方法

     1 XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(filePath)); 
     2 
     3 //获得该工作区的第一个sheet  
     4 XSSFSheet sheet = wb.getSheetAt(0);  
     5         
     6 List<Device> deviceList = new ArrayList<Device>();    
     7 
     8 //遍历所有行
     9 for (Row row:sheet) {
    10     if(row == null){
    11         continue;
    12     }
    13      //遍历行中所有的单元格
    14      for (Cell cell:row) {
    15                          //单元格的参照 ,根据行和列确定某一个单元格的位置  
    16                    CellReference cellRef = new CellReference(row.getRowNum(), cell.getColumnIndex());  
    17                    //打印单元格的位置  
    18                    System.out.print(cellRef.formatAsString());  
    19                    //输出分隔符  
    20                    System.out.print(" - "); 
    21                           //转换数据类型
    22                            String rfidCode = getCellTypes(cell);
    23 
    24                          //你需要实现的功能代码
    25        }
    26 }
    27 
    28 
    29 //判断Excel导入的数据类型,转换成数据库可识别的数据类型
    30 private String getCellTypes(Cell cell) {
    31         String cellValue = null;
    32           if (null != cell) {  
    33               // 以下是判断数据的类型  
    34               switch (cell.getCellType()){  
    35               case HSSFCell.CELL_TYPE_NUMERIC: // 数字  
    36                 // 处理日期格式、时间格式
    37                   if (HSSFDateUtil.isCellDateFormatted(cell)) {
    38                       Date d = cell.getDateCellValue();
    39                       DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
    40                       cellValue = formater.format(d);
    41                   }
    42                   else{ 
    43                       cellValue = cell.getNumericCellValue() + ""; 
    44                   }  
    45 
    46 
    47                   break;  
    48 
    49               case HSSFCell.CELL_TYPE_STRING: // 字符串  
    50                   cellValue = cell.getStringCellValue();  
    51                   break;  
    52 
    53               case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean  
    54                   cellValue = cell.getBooleanCellValue() + "";  
    55                   break;  
    56 
    57               case HSSFCell.CELL_TYPE_FORMULA: // 公式  
    58                  // cellValue = cell.getCellFormula() + "";  
    59                   try {
    60                       DecimalFormat  df = new DecimalFormat("0.0000");
    61                       cellValue = String.valueOf(df.format(cell.getNumericCellValue()));
    62 
    63                   } catch (IllegalStateException e) {
    64                       cellValue = String.valueOf(cell.getRichStringCellValue());
    65                          }
    66                   break;  
    67 
    68               case HSSFCell.CELL_TYPE_BLANK: // 空值  
    69                   cellValue = "";  
    70                   break;  
    71 
    72               case HSSFCell.CELL_TYPE_ERROR: // 故障  
    73                   cellValue = "非法字符";  
    74                   break;  
    75 
    76               default:  
    77                   cellValue = "未知类型";  
    78                   break;  
    79               }  
    80           }  
    81         return cellValue;
    82     }

    另外关于附上SSM导入Excel的链接地址:http://www.jianshu.com/p/1487c0e049db

    不懂的可以参考!欢迎各位评论

  • 相关阅读:
    MSSQL大量数据时,建立索引或添加字段后保存更改超时该这么办
    POJ 3261 Milk Patterns (后缀数组)
    POJ 1743 Musical Theme (后缀数组)
    HDU 1496 Equations (HASH)
    694. Distinct Substrings (后缀数组)
    POJ 1222 EXTENDED LIGHTS OUT (枚举 或者 高斯消元)
    POJ 1681· Painter's Problem (位压缩 或 高斯消元)
    POJ 1054 The Troublesome Frog (hash散列)
    HDU 1716 排列2
    HDU 4405 Aeroplane chess (概率DP & 期望)
  • 原文地址:https://www.cnblogs.com/jbml-154312/p/6867679.html
Copyright © 2011-2022 走看看