EasyExcel

<!--EasyExcel相关依赖-->
<dependency>  
<groupId>com.alibaba</groupId>   
<artifactId>easyexcel</artifactId>   
<version>3.0.5</version>
</dependency>

在这里插入图片描述
在这里插入图片描述

/** 
* excel性别转换器 
* Created by macro on 2021/12/29. 
*/
public class GenderConverter implements Converter<Integer> {    
@Override    
public Class<?> supportJavaTypeKey() {        
    //对象属性类型        
        return Integer.class;    
}    
@Override    
public CellDataTypeEnum supportExcelTypeKey() {        
//CellData属性类型        
    return CellDataTypeEnum.STRING;    
}    
@Override    
public Integer convertToJavaData(ReadConverterContext<?> context) throws Exception {        
//CellData转对象属性        
    String cellStr = context.getReadCellData().getStringValue();        
    if (StrUtil.isEmpty(cellStr)) return null;        
    if ("男".equals(cellStr)) {            
    	 return 0;        
    } else if ("女".equals(cellStr)) {           
    	 return 1;        
 	 } else {            
 		 return null;        
 	}    
 }    
 @Override    
 public WriteCellData<?> convertToExcelData(WriteConverterContext<Integer> context) throws Exception {        
 //对象属性转CellData        
 	Integer cellValue = context.getValue();        
 	if (cellValue == null) {            
 		return new WriteCellData<>("");        
 }        
 	if (cellValue == 0) {            
           return new WriteCellData<>("男");        
 } else if (cellValue == 1) {            
 		return new WriteCellData<>("女");        
 } else {            
 		return new WriteCellData<>("");        
 }    
 }
 }

/** 
* EasyExcel导入导出测试Controller 
* Created by macro on 2021/10/12. 
*/
@Controller@Api(tags = "EasyExcelController", description = "EasyExcel导入导出测试")
@RequestMapping("/easyExcel")
public class EasyExcelController {    
    @SneakyThrows(IOException.class)    
    @ApiOperation(value = "导出会员列表Excel")    
    @RequestMapping(value = "/exportMemberList", method = RequestMethod.GET)    
    public void exportMemberList(HttpServletResponse response) {        
        setExcelRespProp(response, "会员列表");        
        List<Member> memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class);        
        EasyExcel.write(response.getOutputStream())
                 .head(Member.class).excelType(ExcelTypeEnum.XLSX).sheet("会员列表").doWrite(memberList);    
    }      
/**   
* 设置excel下载响应头属性   
*/  
private void setExcelRespProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException {    
    response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");    
    response.setCharacterEncoding("utf-8");    
    String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");    
    response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");  
    }
}
运行项目,通过Swagger测试接口,注意在Swagger中访问接口无法直接下载,需要点击返回结果中的下载按钮才行,访问地址:http://localhost:8088/swagger-ui/

在这里插入图片描述
下载完成后,查看下文件,一个标准的Excel文件已经被导出了。
在这里插入图片描述

参考网址:https://www.yuque.com/easyexcel/doc/easyexcel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值