feat(excel-converters): 增强内置转换器功能,添加 StringArrayConverter.WRITE_INSTANCE

- 注册 StringArrayConverter.WRITE_INSTANCE 到 Excel 写构造器
- 优化代码格式,保持一致性

(cherry picked from commit 3800300f7f101560674dacc6a0840e279b753a2e)
This commit is contained in:
PIGCLOUD committed 2026-11-03 14:49:17 +08:00
1 parent 1db9bdc636
commit abf10a2a19
2 files changed
+39 -30

No files matched your search

@@ -13,32 +13,31 @@ import java.util.List;
*/
public final class BuiltinConverters {
private BuiltinConverters() {
}
private BuiltinConverters() {
}
/**
* 读写 Excel 时默认启用的转换器列表。
*/
private static final List<Converter<?>> INSTANCES = List.of(LocalDateStringConverter.INSTANCE,
LocalTimeStringConverter.INSTANCE, LocalDateTimeStringConverter.INSTANCE, LongStringConverter.INSTANCE,
StringArrayConverter.INSTANCE);
/**
* 读写 Excel 时默认启用的转换器列表。
*/
private static final List<Converter<?>> INSTANCES = List.of(LocalDateStringConverter.INSTANCE,
LocalTimeStringConverter.INSTANCE, LocalDateTimeStringConverter.INSTANCE, LongStringConverter.INSTANCE,
StringArrayConverter.INSTANCE);
/**
* 注册内置转换器到 Excel 写构造器。
*
* @param builder Excel 写构造器
*/
public static void registerTo(ExcelWriterBuilder builder) {
INSTANCES.forEach(builder::registerConverter);
}
/**
* 注册内置转换器到 Excel 写构造器。
* @param builder Excel 写构造器
*/
public static void registerTo(ExcelWriterBuilder builder) {
INSTANCES.forEach(builder::registerConverter);
builder.registerConverter(StringArrayConverter.WRITE_INSTANCE);
}
/**
* 注册内置转换器到 Excel 读构造器。
*
* @param builder Excel 读构造器
*/
public static void registerTo(ExcelReaderBuilder builder) {
INSTANCES.forEach(builder::registerConverter);
}
/**
* 注册内置转换器到 Excel 读构造器。
* @param builder Excel 读构造器
*/
public static void registerTo(ExcelReaderBuilder builder) {
INSTANCES.forEach(builder::registerConverter);
}
}
@@ -18,10 +18,20 @@ public enum StringArrayConverter implements Converter<String[]> {
/**
* 实例
*/
INSTANCE;
INSTANCE,
/**
* 未指定目标单元格类型时,FESOD 使用 null 作为导出转换器的类型键。
*/
WRITE_INSTANCE {
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
};
@Override
public Class<?> supportJavaTypeKey() {
public Class<?> supportJavaTypeKey() {
return String[].class;
}
@@ -31,15 +41,15 @@ public enum StringArrayConverter implements Converter<String[]> {
}
@Override
public String[] convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
return StrUtil.splitToArray(cellData.getStringValue(), StrUtil.COMMA);
public String[] convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
return StrUtil.splitToArray(cellData.getStringValue(), StrUtil.COMMA);
}
@Override
public WriteCellData<String> convertToExcelData(String[] value, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
return new WriteCellData<>(String.join(StrUtil.COMMA, value));
return new WriteCellData<>(String.join(StrUtil.COMMA, value));
}
}