自定义注解:
package com.example.demo.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Created by linjiaming
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelAnnotation {
String headName();
int order();
String datePattern() default "yyyyMMdd HH:mm:ss";
enum DataType {
String,Number,Date,
}
/**
* 数据类型,可以是String,Number(数字型),Date等类型
* @return
*/
DataType type() default DataType.String;
}
实体类:
package com.example.demo.entity;
import com.example.demo.annotation.ExcelAnnotation;
import com.example.demo.annotation.ExcelAnnotation.DataType;
import java.util.Date;
import lombok.Data;
@Data
public class Student {
private Long id;
@ExcelAnnotation(headName = "学号", order =0)
private String stuNo;
@ExcelAnnotation(headName = "姓名", order =1)
private String name;
@ExcelAnnotation(headName = "学院", order =3)
private String academy;
@ExcelAnnotation(headName = "专业",order = 4)
private String major;
@ExcelAnnotation(headName = "年级", order = 5)
private String grade;
@ExcelAnnotation(headName = "班级", order = 6)
private String classes;
@ExcelAnnotation(headName = "年龄", order = 2)
private String age;
@ExcelAnnotation(headName = "入学日期", order = 7, datePattern ="yyyy/MM/dd HH:mm:ss",type = DataType.Date)
private Date entryDate;
}
excel导入导出工具类:
/**
* Created by linjiaming
*/
public class ExcelUtils {
private static ExcelUtils instance;
private ExcelUtils(){}
/**
* 单例模式
* @retu