赞
踩
其使用的场景是有许多的,功能也十分强大。
本次我使用的是基础的web写,导出Excel文档。
首先添加一个 链接 ,里面写的还是比较详细了的
基本的使用理念就是把一个集合数据转换成Excel模式的文档。
首先我们来做一些准备工作:
第一步引入依赖文件
<!-- 官方文档里面提醒了最好不要跨大版本跟新使用,可能会出现一些不必要的bug -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
</dependency>
第二步设置我们的Data数据
@Data
public class DemoData {
//文档最上面行的标题符号,安装定义的上下顺序,呈现出来在Excel中的顺序是从左到右的
//当然官方文档中还有许多其他特殊格式的定义,如:自定义拼接字符、日期格式、小数转百分数
@ExcelProperty("字符串标题")
private String string;
@ExcelProperty("日期标题")
private Date date;
@ExcelProperty("数字标题")
private Double doubleData;
}
选择需要的写方法,此次在对应的需求中我采用的是web中的写,改方法可以将集合中的数据写入表格中,并提供下载。
/** * 文件下载(失败了会返回一个有部分数据的Excel) * <p> * 1. 创建excel对应的实体对象 参照{@link DownloadData} * <p> * 2. 设置返回的 参数 * <p> * 3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大 */ @GetMapping("download") public void download(HttpServletResponse response) throws IOException { // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 // "测试" ----> 最终导出的文件名字 String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); // 此处的 DemoData.class 为第二步中定义的Data数据, // sheet("模板") "模板" 为 Excel中sheet的名称 // doWrite(data()) data() 为 我们需要导入的数据集合 EasyExcel.write(response.getOutputStream(), DemoData.class).sheet("模板").doWrite(data()); }
以上三步操作就是实现了简单的写操作,其他操作可以继续在官方文档中学习使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。