easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能
Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写。
第一步引入Easypoi依赖
cn.afterturn
easypoi-spring-boot-starter
4.2.0
Easypoi的注解使用说明(存留查看即可)
第二步定义对应表格头数据对象实体类(注解的使用可以查阅上面的按需使用即可)
@Setter
@Getter
@ToString
public class LoginCaseDto {
@Excel(name = "flag(0是反向,1是正向)",orderNum = "1",width = 20)
private String flag;
@Excel(name = "urlid(访问id)",orderNum = "2",width = 20)
private String urlid;
@Excel(name = "name(登录账号)",orderNum = "3",width = 20)
private String name;
@Excel(name = "pwd(登录密码)",orderNum = "4",width = 20)
private String pwd;
@Excel(name = "desc(期望提示语)",orderNum = "5",width = 40)
private String desc;
@Excel(name = "actual(实际测试结果)",orderNum = "6",width = 40 )
private String actual;
@Excel(name = "urlpath(被测路径)",orderNum = "7",width = 40 )
private String urlpath;
}
public class LoginUrlDto {
@Excel(name = "id(访问测试类型)",orderNum = "1",width = 20)
private String id;
@Excel(name = "type(请求类型)",orderNum = "2",width = 20)
private String type;
@Excel(name = "url(访问地址)",orderNum = "3",width = 40)
private String url;
}
第三步:封装Easypoi工具类(网上查了很多但是并不完整,这里补充下)
参考文章
关键封装工具类多sheet导入方法
/**
* 功能描述:根据接收的Excel文件来导入多个sheet,根据索引可返回一个集合
* @param filePath 导入文件路径
* @param sheetIndex 导入sheet索引
* @param titleRows 表标题的行数
* @param headerRows 表头行数
* @param pojoClass Excel实体类
* @return
*/
public static List importExcel(String filePath,int sheetIndex,Integer titleRows, Integer headerRows, Class pojoClass) {
// 根据file得到Workbook,主要是要根据这个对象获取,传过来的excel有几个sheet页
ImportParams params = new ImportParams();
// 第几个sheet页
params.setStartSheetIndex(sheetIndex);
params.setTitleRows(titleRows);
params.setHeadRows(headerRows);
List list = null;
try {
list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
} catch (NoSuchElementException e) {
throw new RuntimeException("模板不能为空");
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
excel导入示例(直接传入sheet索引获取对应的sheet表)
多sheet表导出方法使用(需要把导入的多sheet表数据转成list集合获取新数据后调用该方法重新写入)
/**
* 功能描述:把同一个表格多个sheet测试结果重新输出,如果后续增加多个List>对象,需要后面继续追加
* @ExcelEntiry sheet表格映射的实体对象
* @return
*/
public static String exportSheet( Object...objects){
Workbook workBook = null;
try {
// 创建参数对象(用来设定excel得sheet得内容等信息)
ExportParams deptExportParams = new ExportParams();
// 设置sheet得名称
deptExportParams.setSheetName("登录用例");
// 设置sheet表头名称
deptExportParams.setTitle("测试用例");
// 创建sheet1使用得map
Map deptExportMap = new HashMap<>();
// title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName
deptExportMap.put("title", deptExportParams);
// 模版导出对应得实体类型
deptExportMap.put("entity", LoginCaseDto.class);
// sheet中要填充得数据
deptExportMap.put("data", objects[0]);
ExportParams empExportParams = new ExportParams();
empExportParams.setTitle("被测RUL路径");
empExportParams.setSheetName("被测url");
// 创建sheet2使用得map
Map empExportMap = new HashMap<>();
empExportMap.put("title", empExportParams);
empExportMap.put("entity", LoginUrlDto.class);
empExportMap.put("data", objects[1]);
// 将sheet1、sheet2使用得map进行包装
List> sheetsList = new ArrayList<>();
sheetsList.add(deptExportMap);
sheetsList.add(empExportMap);
// 执行方法
workBook = EasyPoiUtil.exportExcel(sheetsList, ExcelType.HSSF);
//String fileName = URLEncoder.encode("test", "UTF-8");
String filepath = (String) LoadStaticConfigUtil.getCommonYml( "testcaseexcel.cases");
FileOutputStream fos = new FileOutputStream(filepath);
workBook.write(fos);
fos.close();
}catch (Exception e){
e.printStackTrace();
}finally {
if(workBook != null) {
try {
workBook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return "success";
}
最后即可获取新的测试结果表格。
项目源码地址传送门
到此这篇关于Java中Easypoi实现excel多sheet表导入导出功能的文章就介绍到这了,更多相关Easypoi excel多sheet表导入导出内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!
easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能相关推荐
- EasyExcel生成带下拉列表或二级级联列表的Excel模版+自定义校验导入数据(附仓库)
EasyExcel生成带下拉列表或二级级联列表的Excel模版+自定义校验导入数据(附仓库) 目录 EasyExcel生成带下拉列表或二级级联列表的Excel模版+自定义校验导入数据(附仓库) 仓库 ...
- excel表格导入matlab并画等高线,#如何将excel表格中大量数据导入matlab中并作图#excel表格里的自由画笔...
怎样在已经制好的excel图表中插入新的数据制图 1,在excel里面你直接选中数据然击插入图表就可以啦~ 2要是想实时更新数据源可以尝试下用BDP版,只需要导入一次数据,选择并保存你想要的模板就可以 ...
- java静态导入_Java中越来越多地接受静态导入吗?
java静态导入 曾经有一段时间,至少在礼貌的社会中,人们普遍认为使用" 不是 "一词是不可接受的. 确实,在那个时候(也许直到今天),很多人确实(也确实)不认为这不是一个真实的词 ...
- java 从未导入_Java 8的10个您从未听说过的功能
java 从未导入 Lambdas lambdas lambdas. 这是您在谈论Java 8时所听到的所有信息.但这只是一部分. Java 8具有许多新功能-一些功能强大的新类和习惯用法,而另一些则 ...
- Java面试poi中excel版本大小_java 中 poi解析Excel文件版本问题解决办法
java 中 poi解析Excel文件版本问题解决办法 发布时间:2020-10-02 03:46:15 来源:脚本之家 阅读:91 作者:程诺 poi解析Excel文件版本问题解决办法 poi解析E ...
- java乘法表_Java中四种9*9乘法表的实现方式(附代码)
前言: 初学java,实现99乘法表是必学必会的内容. 需求 : 分别写出上下左右,对应四个角的乘法表. 思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式. 代码如下: publi ...
- Oracle - 导入异常ORA-01659和11G在Exp时空表不能导出
一.导入时ORA-01659异常 1.问题 导入DMP文件时发生异常:ORA-01659: 无法分配超出 3 的 MINEXTENTS 2.原因 表空间已满 3.处理 ALTER DATABASE D ...
- java excel表格导入_java中excel表格导入实例
展开全部 需要32313133353236313431303231363533e59b9ee7ad9431333264623165导入jxl.jar (在网上可以下载,然后放到lib文件夹中) 开放分 ...
- java 静态导入_Java中静态导入的使用
import static java.lang.Math.abs; import static java.lang.Math.pow; import static java.lang.Math.max ...
最新文章
- Vivado IP核的综合模式:Global以及Out of context的区别理解
- linux添加审计账户_眼镜蛇W眼镜蛇白盒品白源代码审计工具 白帽子版
- Silverlight杂记-控件相关
- flutter利用高德如何获取地理位置信息bug处理
- nyoj1228矩形判断
- TSS描述符表的作用
- Python使用select实现异步通信
- 会话管理-1.1.Cookie介绍
- Java:比较两个对象中全部属性值是否相等
- Git提交失败之 Updates were rejected because the tip of your current branch is behind
- 听说你决定当全职自由漏洞猎人了?过来人想跟你聊聊
- Javascript数组操作
- windows系统bat批处理 mysql 脚本启动关闭
- html实现省市县选择,jQuery ajax实现省市县三级联动
- 【场景实战】 头像违规的审查场景
- 海洋地球物理探测方法综述(二)
- 计算机应用演技,最近快手最火的句子 生活还是需要一点演技的
- 卓训教育:家长如何管理好孩子的学习?
- 项目经理常用的12大工具及5大最佳项目管理软件
- uniapp 旅游_uni-app旅游类跨平台APP制作实战教程
热门文章
- 在html中怎么写背景色渐变,css3背景色渐变
- MySQL+for+Mac下载_MySQL For mac
- docker 删除image_如何用两个小时入门 Docker?
- dw中html颜色的设置颜色代码,Dreamweaver 如何编辑字体大小颜色
- java第一次上机_java第一次上机实验--验证码
- Win11怎么设置桌面软件小图标 Win11设置桌面软件小图标教程
- Android平台RTMP推送模块如何对接NV21、YV12、RGB、YUV等编码前数据
- Python 二叉树实现
- Mysql 如果有多个可选条件怎么加索引_MySQL|mysql-索引
- 小学计算机集体备课,小学信息技术集体备课.doc