一、说明

1、本文通过使用 poi 工具解析 excel 表格数据,实现导入导出

2、excel目前有两种格式 2003版本的 excel.xls 与 2007版本的 excel.xlsx ,注意两种文件的后缀名不同

3、针对不同版本的 excel ,使用不同的类,xls结尾的实现 HSSFWorkbook类,xlsx的实现 XSSFWorkbook

4、实现过程每一步基本上都有注释,不明白的请留言

二 、实现过程如下

  • 创建maven工程,添加依赖
        <!-- 03版 表格 -->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency> <!-- 07版 表格 -->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
  • 实现相应的类
/**
* apache poi demo测试
*/
public class PoiDemo {
public static void main(String[] args) throws Exception {
// 1、获取一个工作簿 根据 excel 文件获取
XSSFWorkbook workbook = new XSSFWorkbook("D:\\test.xlsx"); // 此处加载的是我本地使用测试excel文件
// 2、通过工作簿获取到一个sheet页
// workbook.getSheet("sheetName"); 这是通过 sheet 的名字获取sheet页
XSSFSheet sheet = workbook.getSheetAt(0);// 通过索引获取第几个sheet页
// 3、通过sheet页获取表格的内容,获取sheet页中每一行 和 每一个单元格
// 第一层循环,获取到表格的每一行
for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {
XSSFRow row = sheet.getRow(rowNum);
StringBuilder stringBuilder = new StringBuilder();
// 第二层循环,精准获取到每一个单元格
for (int cellNum = 0; cellNum < row.getLastCellNum(); cellNum++) {
// 现在精确获取到了每一个单元格
Cell cell = row.getCell(cellNum);
// 获取到每一个单元格的内容
if (cell != null) {
Object value = getCellValue(cell);
stringBuilder.append(value).append("-");
} }
System.out.println(stringBuilder);
}
} /**
* 获取单元格的数据
*
* @param cell 单元格
* @return
*/
public static Object getCellValue( Cell cell) {
// 对应于数据库,每一个字段的数据类型可能都不同
// 1、获取到单元格的属性,
CellType cellType = cell.getCellType();
// 2、通过单元格属性获取数据
Object value = null;
switch (cellType) {
case STRING:
value = cell.getStringCellValue();
break;
case BOOLEAN:
value = cell.getBooleanCellValue();
break;
case NUMERIC:
if (DateUtil.isCellDateFormatted(cell)){
// 日期格式
value = cell.getDateCellValue();
} else {
// 数字
value = cell.getNumericCellValue();
}
break;
case FORMULA:
value = cell.getCellFormula();
break;
default:
break;
}
return value;
}
}
  • 本地测试文件

  • 结果如下

  • 若觉得写得还可以的话,请点击支持一下,你的支持是我继续写下去的动力

Apache Poi实现excel解析的更多相关文章

  1. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  2. apache POI 导出excel相关方法

    apache POI 操作excel无比强大.同时有操作word和ppt的接口. 下面讲解poi中常用方法. 1,设置列宽 HSSFSheet sheet = wb.getSheetAt(0); sh ...

  3. Java开发小技巧(六):使用Apache POI读取Excel

    前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...

  4. 使用Apache POI导出Excel小结--导出XLS格式文档

    使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...

  5. 利用Apache POI操作Excel

    最近在做接口,有个功能是利用Excel导入汽车发动机所需零件信息到线上系统中.简单回顾一下之前学过的用java操作Excel. 1.maven配置Apache POI pom.xml中配置POIjar ...

  6. 【Java】使用Apache POI生成和解析Excel文件

    概述 Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作,分别有jxl和poi,2种方式. HSSF is the POI Project's pure ...

  7. Java使用Apache POI进行Excel导入和导出

    Manve依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <dependency> ...

  8. JAVA Apache POI 之sax 解析10万级大数量数据

    第一步让我们来看看我们的大量数据的excel 文件 好的下面第二步看一下代码: package com.chinait.utils; /** * 写这个东西主要是最近做了一个联通的数据迁移工作,他们就 ...

  9. apache poi导出excel报表

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为"P ...

随机推荐

  1. 开始appium的第一个脚本

    设置DesiredCapabilities 存在于以下库中: org.openqa.selenium.remote.DesiredCapabilities Desired Capabilities告诉 ...

  2. tensorflow1.0 队列FIFOQueue管理实现异步读取训练

    import tensorflow as tf #模拟异步子线程 存入样本, 主线程 读取样本 # 1. 定义一个队列,1000 Q = tf.FIFOQueue(1000,tf.float32) # ...

  3. 有关HTTP协议

    有关HTTP协议:https://www.cnblogs.com/an-wen/p/11180076.html

  4. 解决QQ可以登录但是网页打不卡 ,提示代理服务器拒绝连接 的问题。

  5. 结构体 偏移量 (size_t)&(((s *)0)->m) , list相关

    在Windows SDK 的stddef.h 中 #define offsetof(s,m) (size_t)&(((s *)0)->m) 应用例如 #define list_conta ...

  6. Qt5 escape spaces in path

    There are two possible ways. You can either use escaped quotes (inserting the string between quotes) ...

  7. Spring boot自定义parent POM

    文章目录 概述 不使用Parent POM来引入Spring boot 覆盖依赖项版本 概述 在之前的Spring Boot例子中,我们都会用到这样的parent POM. <parent> ...

  8. Ubuntu 之 win10更新ubuntu启动项消失

    问题描述: 昨晚windows更新,今天启动的时候发现启动项没有了,直接进入windows. 解决方案一: 首先进入BIOS看一看是否开启启动项选择,然后再把安全模式(secure boot)关闭(重 ...

  9. values/colors.xml

    <color name="abcd">#FFC4C4C4</color> <color name="white">#FFFF ...

  10. TEC-004-php文件下载任意文件读取漏洞修复

    修改download?u参数值,将/public/files/14842030529.txt,替换为../../../../../../../../../../etc/passwd    functi ...