zoukankan      html  css  js  c++  java
  • [实战篇入门]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;
        }
    
    }

      

  • 相关阅读:
    20155334 2016-2017-2 《Java程序设计》第四周学习总结
    20155334 2016-2017-2 《Java程序设计》第三周学习总结
    20155334 2016-2017-2 《Java程序设计》第二周学习总结
    20155334 2016-2017-2 《Java程序设计》第一周学习总结
    虚拟机与Linux的初体验
    20155334的第二次随笔
    使用Maven工程
    观察者模式(observer)
    GreenPlum之进程会话管理篇
    Linux下crontab命令添加Kettle作业定时任务
  • 原文地址:https://www.cnblogs.com/pangxiansheng/p/4460238.html
Copyright © 2011-2022 走看看