Java 读取Excl文件 (poi-3.13)

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/50581867        最近做项目遇到了读取Excel数据到数据库做数据的初始化。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/50581867

       最近做项目遇到了读取Excel数据到数据库做数据的初始化。于是找一个。发现(poi-3.13)可以解决问题。可以解析两种格式(xlsx和xls)

         以下是实现的步骤

         1.下载poi3.13包,地址(http://poi.apache.org/download.html#POI-3.13)

         2.学习APi。

        接下来是还是demo来说明问题吧:

         1.准备Excel文件:


     2.项目的目录结构:


代码实战:


 /** 
     * 读取Excel数据 
     * @param file 
     */  
    public List<Student> readExcel(File file){
    List<Student> list = new ArrayList<Student>();
        try {  
            InputStream inputStream = new FileInputStream(file);  
            String fileName = file.getName();  
            Workbook wb = null;  
            if(fileName.endsWith("xls")){  
            //解析xls格式  
                wb = new HSSFWorkbook(inputStream);
            }else if(fileName.endsWith("xlsx")){  
            //解析xlsx格式 
                wb = new XSSFWorkbook(inputStream); 
            }  
            //第一个工作表  
            Sheet sheet = wb.getSheetAt(0);
            //第一行的行号 
            int firstRowIndex = sheet.getFirstRowNum(); 
            //最后一行的行号
            int lastRowIndex = sheet.getLastRowNum();  
            for(int rIndex = firstRowIndex; rIndex <= lastRowIndex; rIndex ++){  
            //获取每一行  
            Row row = sheet.getRow(rIndex);
            Student student = new Student();
                if(row != null){ 
                //获取第一例
                    int firstCellIndex = row.getFirstCellNum();  
                    int lastCellIndex = row.getLastCellNum();  
                    for(int cIndex = firstCellIndex; cIndex < lastCellIndex; cIndex ++){  
                    switch (cIndex) {
case 0:
student.setNo1(row.getCell(0).toString());
break;
                        case 1:
                        student.setNo2(row.getCell(1).toString());
break;
                        case 2:
                        student.setNo3(row.getCell(2).toString());
                        break;
                        case 3:
                        student.setNo4(row.getCell(3).toString());
                        break;
                        case 4:
                        student.setNo5(row.getCell(4).toString());
                        break;
                        case 5:
                        student.setNo6(row.getCell(5).toString());
                        break;
                        case 6:
                        student.setNo7(row.getCell(6).toString());
                        break;
           
default:
break;
}
                    }  
                }
                list.add(student);
            }  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }
return list;  
    }  


结果展示:

就这样了,有问题可以联系我QQ:1561281670

相关文章
|
13小时前
|
Arthas 安全 Java
java服务报错 FileNotFoundException:打开的文件过多
java服务报错 FileNotFoundException:打开的文件过多
5 0
|
3天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
28 0
|
5天前
|
存储 监控 Java
如何在Java中实现等待文件修改后再读取数据的功能?
如何在Java中实现等待文件修改后再读取数据的功能?
12 0
|
5天前
|
存储 Java 数据格式
Java实战:轻松掌握文件重命名与路径提取技巧
Java实战:轻松掌握文件重命名与路径提取技巧
14 0
|
5天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
27 0
|
7天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
24 0
|
8天前
|
存储 Java Linux
【Java EE】 文件IO的使用以及流操作
【Java EE】 文件IO的使用以及流操作
|
9天前
|
存储 缓存 安全
【专栏】如何在 Java 中创建临时文件?
【4月更文挑战第28天】本文介绍了Java中创建临时文件的两种方法:使用`File.createTempFile`和自定义创建。`File.createTempFile`能生成唯一文件名,但默认不自动删除;自定义创建则提供更大灵活性,但需手动管理。临时文件常用于数据缓存、文件上传下载和日志记录,使用时需注意文件清理、唯一性和权限设置。
|
12天前
|
Java Unix Windows
|
16天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
52 3