|  |  | 
 |  |  | package cn.lihu.jh.framework.excel.core.util; | 
 |  |  |  | 
 |  |  | import cn.lihu.jh.framework.excel.core.convert.DateConvert; | 
 |  |  | import cn.lihu.jh.framework.excel.core.handler.SelectSheetWriteHandler; | 
 |  |  | import com.alibaba.excel.EasyExcel; | 
 |  |  | import com.alibaba.excel.converters.longconverter.LongStringConverter; | 
 |  |  | 
 |  |  |                 .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 | 
 |  |  |                 .registerWriteHandler(new SelectSheetWriteHandler(head)) // 基于固定 sheet 实现下拉框 | 
 |  |  |                 .registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度 | 
 |  |  |                 .registerConverter(new DateConvert()) // 支持 java.sql.Date 类型转换 | 
 |  |  |                 .sheet(sheetName).doWrite(data); | 
 |  |  |         // 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了 | 
 |  |  |         response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, StandardCharsets.UTF_8.name())); |