EasyPoi 导入导出Excel时使用GroupName的踩坑解决过程

时间:2024-01-26 20:43:17

一、开发功能介绍: 简单的一个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开始,否则会错位获取。

 

 

  好了,大概就写到这里,如果有遇到以上和我一样的问题,并且有更好的解决方式,欢迎留言评论,一起成长,谢谢各位大佬的指点!