- 先创建一个普通maven项目
- 在pom中引入xml相关依赖 <dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.7</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.10</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>
 
- 创建实体类
 实体类属性为Excel为默认字段名
 注解@ExcelProperty()为导出的Excel中的表头
 注解@ExcelIgnore  就会忽略这个字段,不会打印出来@Data
public class ExcelStudentData {
    @ExcelProperty("姓名")
    private String name;
    @ExcelProperty("生日")
    private Date birthday;
    @ExcelProperty("薪资")
    private Double salary;
    /**
     * 忽略这个字段
     */
    @ExcelIgnore
    private String password;
}
 
- 测试
 07版本与03版本写入方式略有不同
 03版本的Excel一次写入最多65536行
 写入前需要先创建excel文件夹public class ExcelWriteTest {
    /**
     * 最简单的写
     */
    @Test
    public void simpleWrite07() {
        String fileName = "d:/excel/01-simpleWrite-07.xlsx";
        // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
        EasyExcel.write(fileName, ExcelStudentData.class).sheet("模板").doWrite(data());
    }
    @Test
    public void simpleWrite03() {
        String fileName = "d:/excel/01-simpleWrite-03.xls";
        // 如果这里想使用03 则 传入excelType参数即可
        EasyExcel.write(fileName, ExcelStudentData.class).excelType(ExcelTypeEnum.XLS).sheet("模板").doWrite(data());
    }
    private List<ExcelStudentData> data(){
        List<ExcelStudentData> list = new ArrayList<>();
        //算上标题,做多可写65536行
        //超出:java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535)
        for (int i = 0; i < 65535; i++) {
            ExcelStudentData data = new ExcelStudentData();
            data.setName("Tom" + i);
            data.setBirthday(new Date());
            data.setSalary(12222.55);
            data.setPassword("123"); //即使设置也不会被导出
            list.add(data);
        }
        return list;
    }
}
 
 
- 指定写入列
 在@ExcelProperties注解中,为列配置index属性
- 自定义格式转换
 比如日期:@DateTimeFormat("")
 比如数值百分比:@NumberFormat("#.##%")