失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > EasyPoi快速入门(Excel导入导出工具)

EasyPoi快速入门(Excel导入导出工具)

时间:2018-09-18 23:55:52

相关推荐

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注解使用(导入示例类使用)

结合实体类的示例:

@Datapublic class UserPo implements IExcelModel, IExcelDataModel {// name 属性对应Excel表中的这一列的名字,和Mysql数据里的列名差不多@Excel(name = "id")private Integer id;@Excel(name = "openid")private String openid;@Excel(name = "nickname")private String nickname;// replace这个属性,是指定替换的值,如果Excel表中是1,那么封装进来就是男,中间的分隔符是下划线@Excel(name = "sex" , replace = {"1_男" , "2_女" , "0_未知"})private String sex;@Excel(name = "city")private String city;@Excel(name = "country")private String country;}

三.编写Servlet导入数据

在这里我们只要写一个接受文件上传的方法就好了,当然这个文件要是Excel的文件,我们读取数据的时候并不需要将文件读取并写到服务器的目录下,只是单纯的读取文件,然后使用easypoi的工具去读取就可以,注意这个工具只是将Excel表中的数据读入内存.

@PostMapping("xlsUpdate")@ResponseBodypublic Result getUpdate(MultipartFile file) throws Exception {// 这里实例导入的对象ImportParams params = new ImportParams();// 下面两句的set很重要,如果设置不对会出现问题// HeadRows是指的你的列名的那一行,表头行数,默认1// 如果你的Excel表上来第一行就是 姓名 , 年龄 , 罩杯...// 那么这里指定HeadRows是第一行,为1params.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的简单的导入导出,大家可以参考尝试一下,确实使用很简单

如果觉得《EasyPoi快速入门(Excel导入导出工具)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。