easypoi 读取 Excel 简单应用
背景
在做接口测试的时候,经常会使用 Excel 来存储对应的接口信息和用例信息,为了方便程序的读取,引入easypoi 工具来读取 Excel 内容。easypoi 比起 poi 使用更加的方便,代码量也少很多。
应用代码
例如我想读取下面 Excel 中的接口信息:

- 引入对应 easypoi 依赖:
<!--easypoi依赖-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.0.0</version>
</dependency>
<!-- 添加校验,在easypoi读取Excel时,可以去掉空行,同时对字段进行强制校验 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>
- 创建对应的实体类:
package com.ggf.juhe.pojo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import javax.validation.constraints.NotNull;
/**
* @Description: 接口信息实体类
* @Author: ggf
* @Date: 2020/06/13
*/
public class ApiInfo {
/**
* 接口编号
*/
@Excel(name="接口编号")
private String id;
/**
* 接口名称
*/
@Excel(name="接口名称")
private String name;
/**
* 请求URL
*/
@Excel(name="接口地址")
@NotNull
private String url;
/**
* 接口请求方式
*/
@Excel(name="接口提交方式")
private String method;
/**
* 请求数据类型
*/
@Excel(name="接口参数类型")
private String type;
public ApiInfo() {
}
public ApiInfo(String id, String name, String method, String url, String type) {
this.id = id;
this.name = name;
this.method = method;
this.url = url;
this.type = type;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "ApiInfo{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", method='" + method + '\'' +
", url='" + url + '\'' +
", type='" + type + '\'' +
'}';
}
}
- easypoi 读取 Excel 代码:
package com.ggf.juhe.demo;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.ggf.juhe.pojo.ApiInfo;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
/**
* @Description:
* @Author: ggf
* @Date: 2020/06/13
*/
public class EasypoiDemo {
public static void main(String[] args) {
String filePath = "src/main/resources/jhapi_case.xlsx";
List<ApiInfo> apiInfos = readExcel(filePath, 0, ApiInfo.class);
for (ApiInfo apiInfo : apiInfos) {
System.out.println(apiInfo);
}
}
/**
*
* @param filePath Excel文件路径
* @param sheetIndex 对应的表单,从0开始,0代表第一个表单
* @param clazz 对应封装的数据实例对象
* @return 返回数据集合
*/
public static <E> List<E> readExcel(String filePath, int sheetIndex, Class<E> clazz) {
// 定义输入流
FileInputStream fis = null;
List<E> datas = null;
try {
// 创建输入流对象
fis = new FileInputStream(filePath);
// 创建一个easypoi使用的配置类
ImportParams params = new ImportParams();
// 设置表格坐标
params.setStartSheetIndex(sheetIndex);
// 校验Excel文件,去掉空行
params.setNeedVerify(true);
// 读取数据
datas = ExcelImportUtil.importExcel(fis, clazz, params);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return datas;
}
}
- 打印结果

easypoi 读取 Excel 简单应用的更多相关文章
- 第四篇:java读取Excel简单模板
场景:对于经常需要导入Excel模板或数据来解析后加以应用的,使用频率非常之高,做了一个比较稳定的版本,体现在这些地方工具:org.apache.poi使用前必须了解这些:1.要解析,那肯定先判断是不 ...
- Java web的读取Excel简单Demo
目录结构: Data.xls数据: 后台页面: GetExcelData.java public void doGet(HttpServletRequest request, Http ...
- 简单poi读取excel
1.添加依赖jar包 maven配置: <!-- poi being --> <dependency> <groupId>org.apache.poi</gr ...
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
- Unity用Excel.dll简单读取Excel内容
Unity用Excel.dll简单读取Excel内容 需要Excel.dll 需要如下三个命名空间 using System.IO; using Excel; using System.Data; 1 ...
- C#读取Excel文件的简单方法
一.简述 本文讲C#通过第三方库读取Excel的最简单的方法,下文给一个读取行数的例子. 二.依赖 引入nuget.org包如下: <?xml version="1.0" e ...
- python pandas模块简单使用(读取excel为例)
第一步:模块安装 pip install pandas 第二步:使用(单个工作表为例) 说明:如果有多个工作表,那么只要指定sheetname=索引,(第一个工作表为0,第二个工作表为1,以此类推) ...
- Vue+EasyPOI导出Excel(带图片)
一.前言 平时的工作中,Excel 导入导出功能是非常常见的功能,无论是前端 Vue (js-xlsx) 还是 后端 Java (POI),如果让大家手动编码实现的话,恐怕就很麻烦了,尤其是一些定制化 ...
- 使用Aspose.Cells读取Excel
最新更新请访问: http://denghejun.github.io Aspose.Cells读取Excel非常方便,以下是一个简单的实现读取和导出Excel的操作类: 以下是Aspose.Ce ...
随机推荐
- C# 数据操作系列 - 13 SugarSql初探
0. 前言 前言,暂时挥别NHibernate(虽然我突然发现这玩意还挺有意思的,不过看得人不多).大步进入了有很多小伙伴向我安利的SQLSugar,嗯,我一直叫SugarSQL,好像是这个吧? 这是 ...
- 害你加班的bug就是我写的,记一次升级Jenkins插件引发的加班
主旨 本文主要记录了下Jenkins升级插件过程中出现的场景,一次加班经历,事发时没有截图,有兴趣可以看看. 起因 需求 最近有个需求:在Jenkins流水线中完成下载Git上的文件简单修改并提交的功 ...
- HTML开发实例-简单相亲网站开发(主体为table)
实现功能:简单的相亲网站: 清楚不常在,抓紧谈恋爱 我承诺 年满十八岁 单身 抱着严肃态度 寻找真诚的另一半 性别: 男 女 生日: --请选择年-- 2019 2020 2021 --请选择月-- ...
- C# 7.0 新增功能&结合微软简化理解
C# 7.0更新时间为2019.2左右 C# 7.0 ~ 7.3 分别需要VS2017 与 .NET Core 1.0. .NET Core 2.0 SDK..NET Core 2.1 SDK,需要在 ...
- rocketmq初识
概念说明 通常一个消息队列需要掌握的知识点有Topic(主体).Producer(生产者).Consumer(消费者).Queue(队列).Delivery Semantics(消息传递范式) 蛋疼的 ...
- MRCTF 2020 WP
MRCTF 2020 WP 引言 周末趁上课之余,做了一下北邮的CTF,这里记录一下做出来的几题的WP ez_bypass 知识点:MD5强类型比较,is_numeric()函数绕过 题目源码: I ...
- 跟着阿里学JavaDay04——Java基础语法(二)
一.Java运算符 运算符的简介 所有的程序开发,都是对数字的进行处理.而对数字的处理,一定会存在所谓的操作模式,而这些操作模式就被称为运算符. 算术运算符 对于算术运算符,我们主要掌握++,--的运 ...
- ES6-Promise承诺
1.扩展:ajax 1.1 代码如下 $.ajax({ url:'地址', type:'get/post', data:{}, dataType:'json/jsonp', success:funct ...
- JAVASE(十六) IO流 :File类、节点流、缓冲流、转换流、编码集、对象流
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.File类型 1.1.File类的理解 File类是在java.io包下 File可以理解成一个文件 ...
- C# Winform退出程序的方法介绍
这篇文章主要介绍了C#中WinForm程序退出方法, 实例总结了技巧退出WinForm程序窗口的各种常用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中WinForm程序退出方法技巧 ...