利用easyexcel导入时转换
时间: 2023-11-04 08:01:44 浏览: 74
在使用EasyExcel导入时,我们可以通过实现EasyExcel的Converter接口来实现数据类型的转换。具体步骤如下:
1. 定义一个类,实现Converter接口,并重写接口方法convertToJavaData()和convertToExcelData(),例如:
```
public class LocalDateTimeConverter implements Converter<LocalDateTime> {
private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
@Override
public Class<LocalDateTime> supportJavaTypeKey() {
return LocalDateTime.class;
}
@Override
public LocalDateTime convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String value = cellData.getStringValue();
if (StringUtils.isEmpty(value)) {
return null;
}
return LocalDateTime.parse(value, DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT));
}
@Override
public CellData convertToExcelData(LocalDateTime localDateTime, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
if (localDateTime == null) {
return new CellData("");
}
return new CellData(localDateTime.format(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)));
}
}
```
2. 在需要转换的字段上使用注解@ExcelProperty,并设置converter属性为我们自定义的转换器,例如:
```
@ExcelProperty(value = "创建时间", index = 2, converter = LocalDateTimeConverter.class)
private LocalDateTime createTime;
```
3. 在使用EasyExcel进行读取时,需要通过EasyExcel.read()方法的registerConverter()方法注册我们自定义的转换器,例如:
```
EasyExcel.read(inputStream, clazz, new ExcelListener()).registerConverter(new LocalDateTimeConverter()).sheet().doRead();
```
通过以上步骤,我们就可以在使用EasyExcel导入时实现数据类型的转换了。
阅读全文