zoukankan      html  css  js  c++  java
  • java POI读取Excel文件

    POI和jxl都能操作Excel,在一开始我选择了jxl来读取Excel文件内容,但在输出读取内容的时候会报错,总结下来就是:

    • jxl只能读取xlsx格式的文件。
    • jxl只能操作2003Excel表格,2007以后的版本则是不可用。

    以上两点只是我个人遇到的问题,最后也是没有解决,所有我是采取了用POI来操作Excel。

    1.导入maven依赖:

    <dependency>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-ooxml</artifactId>
          <version>3.8</version>
        </dependency>
    <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.8</version>
    </dependency>

    2.读取Excel文件内容

     public static List<Area> poi1(){
            List<Area> list=new ArrayList<>();
            try {
                FileInputStream fis = new FileInputStream("F:\f\test1.xlsx");
    //            String city;
                Area area=null;
                XSSFWorkbook workbook =  new XSSFWorkbook(fis);
                XSSFSheet sheet = workbook.getSheetAt(0);
                int firstRowNum = sheet.getFirstRowNum();
                int lastRowNum = sheet.getLastRowNum();
                Row firstRow = sheet.getRow(firstRowNum);
                int firstCellNum = firstRow.getFirstCellNum();
                int lastCellNum = firstRow.getLastCellNum();
                System.out.println("第一行行号:" + firstRowNum);
                System.out.println("最后一行行号:" + lastRowNum);
                System.out.println("第一列列号:" + firstCellNum);
                System.out.println("最后一列列号:" + lastCellNum);

           //我这里是指定了行来获取,如果是获取全部单元格内容的话再加一层for循环即可。
    for(int i = 0; i < lastCellNum; i++) { //System.out.print(sheet.getRow(2).getCell(i).getNumericCellValue() + " "); String city=sheet.getRow(2).getCell(i).getStringCellValue(); String info=sheet.getRow(1).getCell(i).getStringCellValue(); String user=sheet.getRow(0).getCell(i).getStringCellValue(); String type; if (info.equals("")){ type="varchar(10)"; }else type="int"; // //System.out.println(city); area=new Area(city,user,info,type); list.add(area); //System.out.println(list.get(i)); // list.add(sheet.getRow(2).getCell(i).getStringCellValue()); //System.out.println(sheet.getRow(2).getCell(i).getStringCellValue()+" "); //System.out.println(" "); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return list; }
  • 相关阅读:
    【转载】用XML和XSLT来生成静态的HTML页面
    【转载】Lambda表达式(Lambda Expressions)
    [转]打领带的十种方法
    读书笔记
    【转载】用手机的朋友进来看看吧,终身受益啊!!!
    SQL查询出重复出现的数据
    技巧三:字符串格式化
    【Vegas原创】页面自动跳转代码收集
    【Vegas原创】我写的一个安装windowsService的BAT
    【Vegas原创】ASP.NET读取Excel,并以邮件正文方式和附件方式发送实例
  • 原文地址:https://www.cnblogs.com/1305536110-dym/p/15530488.html
Copyright © 2011-2022 走看看