zoukankan      html  css  js  c++  java
  • JAVA POI 应用系列(2)--读取Excel

    添加maven依赖

     1     <dependency>  
     2         <groupId>org.apache.poi</groupId>  
     3         <artifactId>poi</artifactId>  
     4         <version>3.10-FINAL</version>  
     5     </dependency>  
     6     <dependency>  
     7         <groupId>org.apache.poi</groupId>  
     8         <artifactId>poi-ooxml</artifactId>  
     9         <version>3.10-FINAL</version>  
    10     </dependency>

    实现代码:

     1 package com.yanwu.www.spring_hibernate.util;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.IOException;
     5 import java.util.Iterator;
     6 
     7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
     8 import org.apache.poi.ss.usermodel.Cell;
     9 import org.apache.poi.ss.usermodel.Row;
    10 import org.apache.poi.ss.usermodel.Sheet;
    11 import org.apache.poi.ss.usermodel.Workbook;
    12 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    13 
    14 public class ReadExcelFileToList {
    15     public static void main(String[] args) throws IOException {
    16          
    17         String fileName="C:\Users\IBM_ADMIN\Desktop\promotion\a.xls";
    18           FileInputStream fis = new FileInputStream(fileName); 
    19             Workbook workbook = null;
    20           //判断excel的两种格式xls,xlsx
    21           if(fileName.toLowerCase().endsWith("xlsx")){  
    22               workbook = new XSSFWorkbook(fis);  
    23           }else if(fileName.toLowerCase().endsWith("xls")){  
    24               workbook = new HSSFWorkbook(fis);  
    25           }  
    26           
    27             
    28           //得到sheet的总数  
    29           int numberOfSheets = workbook.getNumberOfSheets();  
    30           
    31           System.out.println("一共"+numberOfSheets+"个sheet");
    32           
    33         //循环每一个sheet  
    34           for(int i=0; i < numberOfSheets; i++){  
    35                  
    36               //得到第i个sheet  
    37               Sheet sheet = workbook.getSheetAt(i);  
    38               System.out.println(sheet.getSheetName()+"  sheet");
    39                  
    40               //得到行的迭代器  
    41               Iterator<Row> rowIterator = sheet.iterator();  
    42               
    43               int rowCount=0;
    44               //循环每一行
    45               while (rowIterator.hasNext())   
    46               {  
    47                   System.out.print("第"+(rowCount++)+"行  ");
    48                   
    49                   //得到一行对象  
    50                   Row row = rowIterator.next();  
    51                      
    52                   //得到列对象 
    53                   Iterator<Cell> cellIterator = row.cellIterator();  
    54                   
    55                   int columnCount=0;  
    56                   
    57                   //循环每一列
    58                   while (cellIterator.hasNext())   
    59                   {  
    60                       //System.out.print("第"+(columnCount++)+"列:  ");
    61                       
    62                       //得到单元格对象
    63                       Cell cell = cellIterator.next();
    64                       
    65                       //检查数据类型 
    66                       switch(cell.getCellType()){  
    67                       case Cell.CELL_TYPE_STRING:  
    68                               System.out.print(cell.getStringCellValue()+"   ");    
    69                           break;  
    70                       case Cell.CELL_TYPE_NUMERIC:  
    71                           System.out.print(cell.getNumericCellValue()+"   ");  
    72                       }  
    73                   } //end of cell iterator 
    74                   
    75                   System.out.println();
    76                  
    77               } //end of rows iterator  
    78               
    79             
    80                  
    81           } //end of sheets for loop  
    82              
    83           
    84          System.out.println("
    read excel successfully...");
    85          
    86           //close file input stream  
    87           fis.close();  
    88              
    89      
    90         
    91 
    92         
    93     }
    94 }

    效果:

  • 相关阅读:
    再谈Asp.Net页面生命周期
    多线程、方便扩展的Windows服务程序框架
    用NuGet.Server管好自家的包包
    github for Windows
    MongoVUE 15天试用期解决办法
    NET插件系统——提升系统搜索插件和启动速度的思考
    Visual Studio Ultimate 2012 RC 安装手记
    自动完成菜单
    HBase
    WCF消息可靠性于有序传递
  • 原文地址:https://www.cnblogs.com/harvey2017/p/6912729.html
Copyright © 2011-2022 走看看