一、项目引入相关依赖
<!--easypoi相关的jar包-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.1.3</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.1.3</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.1.3</version>
</dependency>
注意:查看项目中是否引入easypoi相关依赖,查看版本是否冲突。
二、创建实体类,添加导入导出相关注解
@Data
public class Demo {
final String IMGPATH = "xxxx";
@Excel(name = "注册日期",orderNum = "1",importFormat = "yyyy-MM-dd",exportFormat = "yyyy-MM-dd")
private Date dateTime;
@Excel(name = "图片",orderNum = "2",type = 2,savePath = IMGPATH)
private String image;
}
注:name:字段对应名称,与导入模板中名称一致
orderNum:排序
exportFormat :导出日期类格式化
importFormat 导入日期格式化
type:类型,2代表图片
savePath:保存图片的路径
三、导出excel
/**
*导出excel
* @param response
* @throws IOException
*/
@PostMapping("/exportExcel")
public void exportExcel(HttpServletResponse response) {
try {
//查询出要导出的数据
List<Demo> list = ......;
log.info("导出数据:"+list);
list.forEach(demo-> {
if(StringUtils.isNotEmpty(demo.getImage())){
// 修改图片的地址(改成实际的路径)
demo.setImage(RuoYiConfig.getProfile() + demo.getImage());
}
});
//生成Excel
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("Demo列表","Demo"),Demo.class, list);
response.setHeader("content-disposition","attachment;fileName="+ URLEncoder.encode("Demo.xls","UTF-8"));
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.close();
workbook.close();
}catch (Exception e){
e.printStackTrace();
log.error("Demo导出异常",e);
}
}