EasyPoi极快入门(Excel导入导出工具)
简介:
easypoi是一款Excel快速导入导出的工具,最近有所使用,结合了网上的一些用法和官方文档的介绍,在在这里总结一下最简单的esaypoi导入Excel的实现,网上很多教程都已经封装了工具类,虽然方便,但第一次接触easypoi可能看的不是清晰,现在总结一下最为直观的SpringBoot集成easypoi快速入门.
快速入门:
一.导入jar包
-
<dependency>
-
<groupId>cn.afterturn</groupId>
-
<artifactId>easypoi-spring-boot-starter</artifactId>
-
<version>4.2.0</version>
-
</dependency>
二.@Excel注解使用(导入示例类使用)
结合实体类的示例:
-
-
public class UserPo implements IExcelModel, IExcelDataModel {
-
// name 属性对应Excel表中的这一列的名字,和Mysql数据里的列名差不多
-
-
private Integer id;
-
-
private String openid;
-
-
private String nickname;
-
// replace这个属性,是指定替换的值,如果Excel表中是1,那么封装进来就是男,中间的分隔符是下划线
-
-
private String sex;
-
-
private String city;
-
-
private String country;
-
}
三.编写Servlet导入数据
在这里我们只要写一个接受文件上传的方法就好了,当然这个文件要是Excel的文件,我们读取数据的时候并不需要将文件读取并写到服务器的目录下,只是单纯的读取文件,然后使用easypoi的工具去读取就可以,注意这个工具只是将Excel表中的数据读入内存.
-
@PostMapping("xlsUpdate")
-
@ResponseBody
-
public Result getUpdate(MultipartFile file) throws Exception {
-
// 这里实例导入的对象
-
ImportParams params = new ImportParams();
-
-
// 下面两句的set很重要,如果设置不对会出现问题
-
// HeadRows是指的你的列名的那一行,表头行数,默认1
-
// 如果你的Excel表上来第一行就是 姓名 , 年龄 , 罩杯...
-
// 那么这里指定HeadRows是第一行,为1
-
params.setHeadRows(1);
-
-
// 表格标题行数,默认0
-
// 意思就是如果你的表上来就是 xx地区胸部大小统计表
-
// 那这里就是你表的标题占的行数
-
params.setTitleRows(0);
-
-
// 后面的这个方法是固定的
-
// 返回读取列的数组 这里的输入流直接MultipartFile的输入流
-
List<UserPo> result = ExcelImportUtil.importExcel(file.getInputStream(),
-
// 实体类的class 实例的导入对象
-
UserPo.class, params);
-
-
-
// 以上方法可以获得Excel表中的值,并且封装了实体类对象,下面有了实体类对象,那我们想干啥
-
// 就干啥了
-
//*********************************************
-
userService.insertUserList(result);
-
Result r = new Result();
-
r.setMsg("0000");
-
return r;
-
}
这里使用的接受上传文件的方法和MultipartFile类是SpringBoot提供好的
前台当然也要写一个文件上传的表单.这个就不演式了
四:编写Servlet导出数据
导出数据的时候是将你内存中的数据导入到一个Excel表中,正常是前台一个按钮,点击会下载Excel表
导出时的实体类也需要@Excel注解,并且可以使用一些属性定义要下载的表的行高列宽等属性,详情见上面的表格.并且也可以使用replace属性,指定替换某些值
-
// 不知道为啥这段代码不高亮,很尴尬,大家凑合着看
-
@GetMapping("downLoad")
-
public void downLoad(HttpServletResponse resp) throws IOException {
-
// 获取你的实体类list集合
-
List<UserEx> list = userService.listUserEx();
-
-
// 创建Workbook这个对象
-
// 第一个参数是一个ExportParams对象,这里直接new,
-
// ExportParams对象里面的第一个参数是你自己定义的表的名字
-
// ExportParams对象里面的第二个参数是你自己定义Excel中Sheet的名字
-
// 第二个参数是实体类的class 第三个是你封装的集合
-
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("用户表", "用户详
-
情") ,UserEx.class , list);
-
-
// 设置下载的头信息 使用URLEncoder.encode是为了解决编码问题
-
resp.setHeader("Content-Disposition" , "attachment;filename="
-
URLEncoder.encode("用户表.xls" , "utf-8"));
-
-
ServletOutputStream os = resp.getOutputStream();
-
// 用workbook对象直接写出输出流就可以
-
workbook.write(os);
-
}
至此就简单的完成了easypoi的简单的导入导出,大家可以参考尝试一下,确实使用很简单
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgjfigf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13