因为只有导出的需求,所以只配置了导出的功能。
直接上代码:
public void downloadReportData(){
String fileName = "用户详情报表数据";
List<Materials> userEntities = new ArrayList<>();
Materials userEntity = new Materials();
userEntity.setName("自鑫");
userEntity.setMaterialNo("9999");
userEntity.setContacts("成都");
userEntity.setIds(18);
userEntity.setDepartment("码农");
userEntities.add(userEntity);
try {
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
fileName = URLDecoder.decode(fileName, "UTF-8").replaceAll("\\+", "%20");
EasyExcel.write( "C:/Users/Administrator/Desktop/"+fileName + ".xlsx", Materials.class).sheet("模板").doWrite(userEntities);
} catch (IOException e) {
e.printStackTrace();
}
}
一开始就实现的导出的功能,但是一直乱码,网上的教程都需要配合HttpServletResponse使用,但是公司用的这个版本太老了有好多解决乱码的都用不上,所以去扒了扒了官网文档,删删减减的测了一下出来了就,其中还有一个就是
URLDecoder.decode(fileName, "UTF-8").replaceAll("\\+", "%20")
这,生成的文件名是中文的格式,但是一开始文档里使用的是
URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20")
就导致生成的文件名一直是%E9...乱码显示,这个是比较坑的,找了很多文档才发现的。
止于剩下的就是声明一个实体类,然后
别忘了注解这一块,不然输出的时候就不知道输出啥了(我没试过)。
这个比较坑的是需要导出那个表就得去创建对应的实体类,有呢种自动生成的还好点,但是也得手动改一些数据,通用性感觉不是太好。