本文通过自定义注解实现excel数据导入导出、以及设置excel文件中列数据验证,即用户在excel文件中输入数据时就可以对数据格式验证是否符合,节省了程序中过多的数据验证操作,注解还额外提供了一系列功能请自行查看本文提供代码包含了详细注释
工具类项目链接 项目中有许多工具类用不到的话可以不用关注,重点观看本文讲解的自定义excel注解数据处理,工具类中使用了poi依赖自行添加
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
项目拉取下来之后重点观看以下截图中标识的类
将工具类迁移到自己项目中之后使用工具类下载存在多列联动效果的模板案例如下
实体类使用excel注解标注字段
import java.util.Date;
import java.util.List;
import com.zx.common.annotation.Excel;
import com.zx.common.annotation.Excel.ColumnType;
import com.zx.common.annotation.Excel.Type;
import com.zx.common.annotation.Excels;
public class SysDept {
private static final long serialVersionUID = 1L;
/** 如实体类中有属性是其他对象,可以用 @Excels 指定该对象里面需要导出或导入属性即可*/
@Excels({
@Excel(name = "用户名称", targetAttr = "userName", type = Type.EXPORT),
@Excel(name = "用户性别", targetAttr = "sex", type = Type.EXPORT)
})
private SysUser user;
/** 部门ID */
private Long deptId;
/** 父部门ID */
private Long parentId;
/** 省 */
@Excel(name = "省",sort = 1)
private String province;
/** 市 */
@Excel(name = "市",sort = 2)
private String city;
/** 区 */
@Excel(name = "区",sort = 3)
private String areg;
/** 部门名称 */
@Excel(name = "部门名称",sort = 4)
private String deptName;
/** 联系电话 */
@Excel(name = "联系电话"