easyExcel简单导出示例

项目重构,从poi升级为easyExcel。

看了下官网,先写了简单导出示例。后续补充下多sheet页导出,以及导入。

ExcelUtil.java:
 /**
     * 导出数据为excel文件
     *
     * @param filename       文件名称
     * @param dataResult     集合内的bean对象类型要与clazz参数一致
     * @param clazz          集合内的bean对象类型要与clazz参数一致
     * @param response       HttpServlet响应对象
     */
    public static void export(String filename, List dataResult, Class clazz, HttpServletResponse response) {
        response.setStatus(200);
        OutputStream outputStream = null;
        ExcelWriter excelWriter = null;
        try {
            if (StringUtils.isBlank(filename)) {
                throw new RuntimeException("'filename' 不能为空");
            }
            String fileName = filename.concat(".xlsx");
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
            outputStream = response.getOutputStream();

            excelWriter = EasyExcel.write(outputStream).build();
            // 先用 filename 作为 sheetName
            WriteSheet writeSheet1 = EasyExcel.writerSheet(0, filename).head(clazz).build();
            // 写出数据
            excelWriter.write(dataResult, writeSheet1);

        } catch (Exception e) {
            System.out.println("导出excel数据异常:"+e);
            throw new RuntimeException(e);
        } finally {
            if (excelWriter != null) {
                excelWriter.finish();
            }
            if (outputStream != null) {
                try {
                    outputStream.flush();
                    outputStream.close();
                } catch (IOException e) {
                    System.out.println("导出excel数据异常:"+e);
                }
            }
        }
    }

实体类:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {

    @ExcelProperty("学生姓名")
    private String sName;
    @ExcelProperty("学生性别")
    private String sSex;
    @ExcelProperty("学生年龄")
    private String sAge;
    @ExcelProperty("学生住址")
    private String sAddres;
    @ExcelProperty(value = "入学时间",format = "yyyy-MM-dd HH:mm:ss")
    private Date enrolTime;
}

测试:

    @RequestMapping(value = "/export", method = RequestMethod.GET)
    public void export(Long size, HttpServletResponse response){
        ExcelUtil.export("学生信息",getStudents(),Student.class,response);
    }


    // 模拟根据条件在数据库查询数据
    public List getStudents() {
        ArrayList students = ListUtils.newArrayList();
        for (int i = 0; i < 10; i++) {
            Student student = new Student();
            student.setSName("菜花"+i);
            student.setSAge(i+"");
            student.setSSex("男");
            student.setSAddres("速度干涸三个房间"+i);
            student.setEnrolTime(new Date());
            students.add(student);
        }
        return students;
    }

你可能感兴趣的:(java,easyExcel)