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

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

  • 相关阅读:
    AJAX MANAGER
    关闭IE浏览器的自动RSS阅读功能
    WCF REST Configuration for ASP.NET AJAX and plain REST Services
    jquery, json与ashx的完美结合
    ASP.NET 页面中的 ValidateRequest属性
    ASP.NET中的healthMonitoring
    GZip Compress SoapExtension
    ASP.NET MVC : UrlHelper
    Microsoft Ajax Content Delivery Network
    ASP.NET: TextBox控件如果设置为ReadOnly则PostBack之后可能丢失数据的问题
  • 原文地址:https://www.cnblogs.com/jbml-154312/p/6867679.html
Copyright © 2011-2022 走看看