ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
![](https://img.kancloud.cn/59/78/597820022c4c2f6d480ac7e248ba8739_1799x157.jpg) 支持自定义转换器、数字格式化、日期格式化三种格式化方式。 <br/> **1. 创建对应的实体类** ```java @Data public class Product { /** 自定义的转换器 */ @ExcelProperty(converter = ProductNameConverter.class) private String name; /** 将小数点转化为百分比,必须以String接收才能格式化 */ @NumberFormat("#.##%") private String price; /** 格式化日期必须以String接收才能格式化 */ @DateTimeFormat("yyyy-MM-dd HH:mm:ss") private String createTime; } ``` **2. 自定义转化器** ```java public class ProductNameConverter implements Converter<String> { /** * 当读取 Product.name 属性时被调用,返回的值就是Product.name的新值 */ @Override public String convertToJavaData(ReadConverterContext<?> context) { return "Product:" + context.getReadCellData().getStringValue(); } } ``` **3. 自定义监听器** ```java @Slf4j public class ProductExcelListener implements ReadListener<Product> { @Override public void invoke(Product product, AnalysisContext analysisContext) { log.info("invoke -> {}", product); //invoke -> Product(name=Product:电脑, price=80%, createTime=2022-06-29 15:31:30) //invoke -> Product(name=Product:电脑, price=8000%, createTime=2022-06-29 15:31:30) } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { log.info("doAfterAllAnalysed"); } } ``` **4. 读取表格** ```java @Test public void read01() { String path = this.getClass().getResource("/read/002.xlsx").getPath(); EasyExcel.read(path, Product.class, new ProductExcelListener()).sheet().doRead(); } ```