[实战篇入门]01-POI读Excel

  这一章的内容就是告诉各位同学如何入门POI的简单使用,再之后我们还会学习如何封装模版,由于个人时间问题,不定期更新!如果有需要,请再QQ中联系我,好了,开始工作!

  新建一个Java项目,首先需要一些列的jar包

  直接上图讲解:

  

  这里需要注意jar包的下载,需要再Apache官网 http://poi.apache.org/download.html  中下载对应POI的包,里面有对应的API和帮助文档,

  再搭建过程中遇到了缺少xmlbeans.jar的情况,自己想办法解决,我曾经告诉你们如何下载jar文件的网站

  新建一个excel文件reader.xlsx中内容如下:

  

  入门测试代码:

public class PoiReaderTest {

    public static void main(String[] args) {
        try {
            Workbook workbook = WorkbookFactory.create(new File("E://java-workspace//shxt-2014//1001-POI读取Excel//xlxs//reader.xlsx"));
            Sheet sheet = workbook.getSheetAt(0);//通过索引获取
            //获取行
            Row row = sheet.getRow(0);
            Cell cell = row.getCell(0);
            
            System.out.println(cell.getStringCellValue());
            
            
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

 

  读取全部信息,这里有一个简单的封装,不合格的封装,就是为了测试而已!

public class PoiReaderAllTest {

    public static void main(String[] args) {
        try {
            Workbook workbook = WorkbookFactory.create(new File("E://java-workspace//shxt-2014//1001-POI读取Excel//xlxs//reader.xlsx"));
            Sheet sheet = workbook.getSheetAt(0);//通过索引获取
            //获取最后的行数
            System.out.println(sheet.getLastRowNum());
            
            //进行遍历
            for(int i=0;i<=sheet.getLastRowNum();i++){
                //获取每行
                Row row = sheet.getRow(i);
                //对列数进行遍历
                for(int j=0;j<row.getLastCellNum();j++){
                    //获取单元格
                    //Cell cell = row.getCell(j);
                    //每个字符串都有自己的类型,所以需要对每个单元格的数据进行转换
                    System.out.print(getCellValue(row.getCell(j))+"--");
                }
                System.out.println();
            }
            
            
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    private static String getCellValue(Cell cell){
        //返回值
        String result = null;
        switch (cell.getCellType()) {//获取单元格的类型比较
        
        case Cell.CELL_TYPE_BLANK:
            result = "";
            break;
        case Cell.CELL_TYPE_BOOLEAN:
            result = String.valueOf(cell.getBooleanCellValue());
            break;
        case Cell.CELL_TYPE_FORMULA:
            result = String.valueOf(cell.getCellFormula());
            break;
        case Cell.CELL_TYPE_NUMERIC:
            result = String.valueOf(cell.getNumericCellValue());
            break;
        case Cell.CELL_TYPE_STRING:
            result = cell.getStringCellValue();
            break;

        default:
            result = null;
            break;
        }
        return result;
    }

}

 

  

 

posted on 2015-04-27 15:03  胖先生  阅读(887)  评论(0编辑  收藏  举报