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;

    }

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值