java解析Excel文件

下文介绍java解析Excel文件的方案

前置准备

1.第三方jar包或者Maven配置

org.apache.poi的jar包

Maven配置如下

    <groupId>org.apache.poi

    <artifactId>poi

    <version>3.15

</dependency>

分析

首先我们大概分析下,实现解析大概需要那几步:

第一步、加载数据源文件

说明:把源文件以数据流的形式写入可以操作解析Excel文件的对象中

第二步、获取工作表页数据

说明:利用可以操作解析Excel文件的对象,获取工作表页数据

第三步、获取工作表页中行数据

说明:工具类自带方法获取行数据

第四步、获取工作表页中指定行的指定列数据

说明:工具类自带方法获取列数据

实际说明

下面我们实际说明每一步所涉及到的代码内容,有些判断细节就不一一列举,请看后面的整体截图。

第一步、加载数据源文件

//先把目标文件转为文件流

File excel =new File("目标文件所处地址");

//创建输出流对象

FileInputStream fis =new FileInputStream(excel);

//将输出的流对象引入到解析excel文件的对象中

Workbook wb =new HSSFWorkbook(fis);

第二步、获取工作表页数据

 //读取第三个工作表页的数据(第一个工作表是0)

Sheet sheet = wb.getSheetAt(2);

第三步、获取工作表页中行数据

//读取的行.如果sheet中一行数据都没有则返回-1,只有第一行有数据则返回0,最后有数据的行是第n行则返回n-1

int firstRowIndex = sheet.getFirstRowNum();

//读取的总的行数

int lastRowIndex = sheet.getLastRowNum();

//获取指定行的数据

Row row = sheet.getRow(1);

可以通过for循环,遍历每一行并获取行数据,再在循环内对列数据进行处理

第四步、获取工作表页中指定行的指定列数据

//当前行的第一个列数据的下标

int firstCellIndex = row.getFirstCellNum();

//row中一列数据都没有则返回-1,只有第一列有数据则返回1,最后有数据的列是第n列则返回n

int lastCellIndex = row.getLastCellNum();

//获取当前下标(列)的单元格数据

Cell cell = row.getCell(cIndex);

通过以上步骤就能解析到各行各列的数据值了,具体怎么存储、使用就可以结合实际的业务场景搭配使用。


下面详细说明下,解析过程中需要注意的一些细节点

源文件相关的一些判断处理

//判断是文件并且是存在的

if (excel.isFile() && excel.exists()) {

//拆分文件名和后缀

    String[] split = excel.getName().split("\\.");  //.是特殊字符,需要转义

    //创建解析excel文件的对象类

    Workbook wb;

    //根据文件后缀(xls/xlsx)进行判断

    if ("xls".equals(split[1])){

//创建输出流对象

        FileInputStream fis =new FileInputStream(excel);  //文件流对象

        //将输出的流对象引入到解析excel文件的对象中

        wb =new HSSFWorkbook(fis);

    }else if ("xlsx".equals(split[1])){

//将文件对象引入到解析excel文件的对象中

        wb =new XSSFWorkbook(excel);

    }else {

System.out.println("文件类型错误!");

return null;

    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容