maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
实体
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Person {
@ExcelProperty(value = "姓名",index = 0)
private String name;
@ExcelProperty(value = "金额",index = 1)
private int monry;
@ExcelProperty(value = "年龄",index = 2)
private int age;
}
controller
public void export(HttpServletResponse response){
List<Map<String,List<Person>>> list = new ArrayList<>();
Map<String,List<Person>> map = new HashMap<>();
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("Tom", 8900, 23));
personList.add(new Person("Jack", 7000, 25));
personList.add(new Person("Tom", 8900, 23));
personList.add(new Person("Back", 7000, 25));
List<Person> personList1 = new ArrayList<Person>();
personList1.add(new Person("Tom", 8900, 23));
personList1.add(new Person("Jack", 7000, 25));
personList1.add(new Person("Tom", 8900, 23));
personList1.add(new Person("Back", 7000, 25));
map.put("第一个sheet",personList);
map.put("第二个sheet",personList1);
list.add(map);
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
try {
String fileName = URLEncoder.encode("Physical", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
//新建ExcelWriter
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
//获取sheet1对象
WriteSheet detailSheet = null;
int i = 0;
for (Map<String,List<Person>> item:list) {
for (Map.Entry<String, List<Person>> entry : item.entrySet()) {
detailSheet = EasyExcel.writerSheet(i, entry.getKey()).build();
excelWriter.write(entry.getValue(), detailSheet);
i+=1;
}
}
//关闭流
excelWriter.finish();
}catch (IOException e){
System.out.println("导出异常{}"+e.getMessage());
}
}