Skip to main content

Format Conversion

FastExcel supports date, number, and custom format conversions.

Overview

During usage, we may need to convert read or written data into specific formats. FastExcel provides a flexible converter mechanism that allows users to define custom data conversion rules to meet various business requirements.

Example

POJO Class

@Getter
@Setter
@EqualsAndHashCode
public class ConverterData {
@ExcelProperty(converter = CustomStringStringConverter.class)
private String string;

@DateTimeFormat("yyyyMMddHHmmss")
private String date;

@NumberFormat("#.##%")
private String doubleData;
}

Converter

public class CustomStringStringConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}

@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}

@Override
public String convertToJavaData(ReadConverterContext<?> context) {
return "Custom: " + context.getReadCellData().getStringValue();
}

@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<String> context) {
return new WriteCellData<>(context.getValue());
}
}

Code Example

@Test
public void converterRead() {
String fileName = "path/to/demo.xlsx";

FastExcel.read(fileName, ConverterData.class, new DemoDataListener())
.registerConverter(new CustomStringStringConverter()) // Register custom converter
.sheet()
.doRead();
}