Easyexcel(1-注解利用)

[复制链接]
发表于 2025-12-24 10:01:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
干系文章链接:
      
  • Easyexcel(1-注解利用)
版本依靠

  1. <dependency>
  2.     <groupId>com.alibaba</groupId>
  3.     <artifactId>easyexcel</artifactId>
  4.     <version>3.3.3</version>
  5. </dependency>
复制代码
@ExcelProperty

指定当前字段对应excel中的那一列,可以根据名字大概Index去匹配,固然也可以不写。
      
  • value:指定写入的列头,如果不指定则利用成员变量的名字作为列头;如果要设置复杂的头,可以为value指定多个值  
  • order:优先级高于value,会根据order的序次来匹配实体和excel中数据的序次  
  • index:优先级高于value和order,指定写到第几列,如果不指定则根据成员变量位置排序;默认第一个字段就是index=0  
  • converter:指定当前字段用什么转换器,默认会自动选择。可以用来设置范例转换器,必要实现Converter接口
value

指定属性名

  1. @Data
  2. public class User {
  3.    
  4.    
  5.     private Integer userId;
  6.     private String name;
  7.     private String phone;
  8.     private String email;
  9.     private Date createTime;
  10. }
复制代码
  1. @RestController
  2. public class TestController {
  3.    
  4.    
  5.     @GetMapping("/test1")
  6.     public void test1(HttpServletResponse response) {
  7.    
  8.    
  9.         try {
  10.    
  11.    
  12.             response.setContentType("application/vnd.ms-excel");
  13.             response.setCharacterEncoding("utf-8");
  14.             String fileName = URLEncoder.encode("test1", "UTF-8").replaceAll("\\+", "%20");
  15.             response.setHeader("Content-disposition", "attachment;filename" + fileName + ".xls");
  16.             User user = new User();
  17.             user.setUserId(123);
  18.             user.setName("as");
  19.             user.setPhone("15213");
  20.             user.setEmail("5456");
  21.             user.setCreateTime(13213L);
  22.             EasyExcel.write(response.getOutputStream(), User.class)
  23.                     .sheet("test")
  24.                     .doWrite(Arrays.asList(user));
  25.         } catch (Exception e) {
  26.    
  27.    
  28.             e.printStackTrace();
  29.         }
  30.     }
  31. }
复制代码

默认情况下,利用类的属性名作为Excel的列表,固然也可以利用@ExcelProperty 注解来重新指定属性名称。
  1. @Data
  2. public class User {
  3.    
  4.    
  5.     @ExcelProperty(value = "用户Id")
  6.     private Integer userId;
  7.    
  8.     @ExcelProperty(value = "姓名")
  9.     private String name;
  10.    
  11.     @ExcelProperty(value = "手机")
  12.     private String phone;
  13.    
  14.     @ExcelProperty(value = "邮箱")
  15.     private String email;
  16.    
  17.     @ExcelProperty(value = "创建时间")
  18.     private Date createTime;
  19. }
复制代码

表头归并

value在写的时间,如果指定了多个值,会自动举行归并
  1. @Data
  2. public class User {
  3.    
  4.    
  5.     @ExcelProperty(value = "用户Id")
  6.     private Integer userId;
  7.    
  8.     @ExcelProperty(value = {
  9.    
  10.    "用户基本信息", "姓名"})
  11.    
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表