POM依赖
<!--导出为excel-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.5</version>
</dependency>
<!--mp-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
工具类 这个可以不写 减少controller的代码量
public class ExcelUtils {
public static void writeExcel(HttpServletResponse response , List<Student> list) throws IOException {
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
//定义工作表对象
WriteSheet sheet =EasyExcel.writerSheet(0,"sheet").head(Student.class).build();
// 往excel中添加数据
excelWriter.write(list,sheet);
excelWriter.finish();
}
}
实体类(DTO)
@TableName(“student”)
@ExcelProperty(“ID”) EXCEL表的 第一行
@Data //get、set。
@AllArgsConstructor //有参
@NoArgsConstructor //无参
@TableName("student")
@EqualsAndHashCode(callSuper = false)
public class StudentDO {
@TableId(type = IdType.AUTO)
@ExcelProperty("ID")
private Long id;
@ExcelProperty("姓名")
private String name;
@ExcelProperty("生日")
@DateTimeFormat("yyyy-MM-dd")
private Date birthday;
@ExcelProperty("大学")
private String college;
@ExcelProperty("职位")
private String major;
}
controller
@RestController
public class TestController {
/**
* 导出为EXCEL表格
* @param response
* @throws IOException
*/
@Resource
private StudentMapper studentMapper;
@GetMapping("/test")
@ResponseBody
public void test(HttpServletResponse response) throws IOException {
List<Student> list = new ArrayList<>();
//创建QueryWrapper对象
Wrapper<Student> Wrapper = new QueryWrapper<>();
//selectObjs(Wrapper)
System.out.println(studentMapper.selectObjs(Wrapper));
Object []a=studentMapper.selectObjs(Wrapper).toArray();
for (int i = 0; i < a.length; i++) {
System.out.println(studentMapper.selectById(a[i].toString()));
list.add(studentMapper.selectById(a[i].toString()));
}
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + "test.xlsx");
ExcelUtils.writeExcel(response ,list);
// //以下部分可以写进工具类
// ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
// //定义工作表对象
// WriteSheet sheet =EasyExcel.writerSheet(0,"sheet").head(Student.class).build();
// // 往excel中添加数据
// excelWriter.write(list,sheet);
// excelWriter.finish();
}
}
Mapper
@Mapper
@Repository
public interface StudentMapper extends BaseMapper<Student> {
}