一、开发功能介绍: 简单的一个excel导入功能
二、Excel导入模板(大致模板没写全):
姓名 | 性别 | 生日 | 客户分类 | 联系人姓名 | 联系人部门 | 备注 | ||
材料 | 综合 | 采购 | ||||||
张三 | 男 | 1994/05/25 | 1 | 1 | 1 | 张三 | 开发部 | |
李四 | 男 | 1994/05/25 | 1 | 1 | 1 | 张三 | 开发部 | |
王五 | 男 | 1994/05/25 | 1 | 1 | 1 | 张三 | 开发部 | |
周六 | 男 | 1994/05/25 | 1 | 1 | 1 | 张三 | 开发部 |
三、实体类注解:按照如下注解使用官网提供的导入导出方法即可实现功能。
1 package com.adc.da.customerresourcemanage.dto; 2 3 import cn.afterturn.easypoi.excel.annotation.Excel; 4 import com.adc.da.base.entity.BaseEntity; 5 import lombok.Data; 6 7 import java.util.Date; 8 @Data 9 public class ContactsDto extends BaseEntity { 10 11 12 /**企业名称-外键 **/ 13 @Excel(name = "企业名称",orderNum = "1") 14 private String enterpriseName; 15 /** 姓名 **/ 16 @Excel(name = "姓名",orderNum = "2") 17 private String contactsUsname; 18 /** 部门 **/ 19 @Excel(name = "部门",orderNum = "3") 20 private String departName; 21 /** 子部门 **/ 22 @Excel(name = "子部门",orderNum = "4") 23 private String childDepartName; 24 /** 职务 **/ 25 @Excel(name = "职务",orderNum = "5") 26 private String contactsPost; 27 /** 性别 **/ 28 @Excel(name = "性别",orderNum = "6") 29 private String contactsSex; 30 /** 手机 **/ 31 @Excel(name = "手机",orderNum = "7") 32 private String contactsPhone; 33 /** 座机 **/ 34 @Excel(name = "座机",orderNum = "8") 35 private String contactsLandline; 36 /** 邮箱 **/ 37 @Excel(name = "邮箱",orderNum = "9") 38 private String contactsEmail; 39 /** 家庭住址 **/ 40 @Excel(name = "家庭地址",orderNum = "10") 41 private String contactsHomeaddress; 42 /** 生日 **/ 43 @Excel(name = "生日",orderNum = "11",format = "yyyy/MM/dd") 44 private Date contactsBirthday; 45 /** 籍贯 **/ 46 @Excel(name = "籍贯",orderNum = "12") 47 private String contactsBirthplace; 48 /** 毕业院校 **/ 49 @Excel(name = "毕业院校",orderNum = "13") 50 private String contactsSchool; 51 /** 影响力名称 **/ 52 @Excel(name = "影响力",orderNum = "14") 53 private String effectName; 54 /**亲密度名称 **/ 55 @Excel(name = "亲密度",orderNum = "15") 56 private String intimacyName; 57 /** 录入日期 **/ 58 @Excel(name = "录入时间",orderNum = "16") 59 private Date createTime; 60 /** 录入人姓名 **/ 61 @Excel(name = "录入人",orderNum = "17") 62 private String createUserName; 63 /** 材料 **/ 64 @Excel(name = "材料",orderNum = "18",groupName = "客户分类",fixedIndex = 17) 65 private String stuff; 66 /** 评价 **/ 67 @Excel(name = "评价",orderNum = "19",groupName = "客户分类",fixedIndex = 18) 68 private String evaluate; 69 /** 市场 **/ 70 @Excel(name = "市场",orderNum = "20",groupName = "客户分类",fixedIndex = 19) 71 private String market; 72 /** 法规 **/ 73 @Excel(name = "法规",orderNum = "21",groupName = "客户分类",fixedIndex = 20) 74 private String statute; 75 /** 认证**/ 76 @Excel(name = "认证",orderNum = "22",groupName = "客户分类",fixedIndex = 21) 77 private String authentication; 78 /** 智能**/ 79 @Excel(name = "智能",orderNum = "23",groupName = "客户分类",fixedIndex = 22) 80 private String intelligence; 81 /**综合**/ 82 @Excel(name = "综合",orderNum = "24",groupName = "客户分类",fixedIndex = 23) 83 private String comprehensive; 84 /** 采购 **/ 85 @Excel(name = "采购",orderNum = "25",groupName = "客户分类",fixedIndex = 24) 86 private String purchase; 87 /**财务 **/ 88 @Excel(name = "财务",orderNum = "26",groupName = "客户分类",fixedIndex = 25) 89 private String finance; 90 /** 联系人姓名 **/ 91 @Excel(name = "联系人姓名",orderNum = "27",fixedIndex = 26) 92 private String conUsname; 93 /** 联系人部门 **/ 94 @Excel(name = "联系人部门",orderNum = "28") 95 private String conDepartName; 96 /** 联系人职务 **/ 97 @Excel(name = "联系人职务",orderNum = "29") 98 private String conPost; 99 /**联系方式 **/ 100 @Excel(name = "联系方式",orderNum = "30") 101 private String conPhone; 102 /**联系邮箱 **/ 103 @Excel(name = "联系邮箱",orderNum = "31") 104 private String conEmail; 105 /** 备注 **/ 106 @Excel(name = "备注",orderNum = "32") 107 private String remark; 108 109 }
四、过程中遇到的坑
注解只写 @Excel(name = "综合",orderNum = "24",groupName = "客户分类"),导入的时候,在分组结束后字段联系人姓名的值无法获取。网上百度了好多方法也没有找到原因所在,官网联系也没有得到原因。
所以根据官网的属性介绍,添加了fixedIndex属性,固定死列数,亲测可以解决这个问题,但是这里要注意 fixedIndex必须从0开始,否则会错位获取。
好了,大概就写到这里,如果有遇到以上和我一样的问题,并且有更好的解决方式,欢迎留言评论,一起成长,谢谢各位大佬的指点!