diff --git a/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/BuiltinConverters.java b/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/BuiltinConverters.java index 328b82499..f1523900b 100644 --- a/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/BuiltinConverters.java +++ b/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/BuiltinConverters.java @@ -13,32 +13,31 @@ import java.util.List; */ public final class BuiltinConverters { - private BuiltinConverters() { - } + private BuiltinConverters() { + } - /** - * 读写 Excel 时默认启用的转换器列表。 - */ - private static final List> INSTANCES = List.of(LocalDateStringConverter.INSTANCE, - LocalTimeStringConverter.INSTANCE, LocalDateTimeStringConverter.INSTANCE, LongStringConverter.INSTANCE, - StringArrayConverter.INSTANCE); + /** + * 读写 Excel 时默认启用的转换器列表。 + */ + private static final List> 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); + } } diff --git a/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/StringArrayConverter.java b/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/StringArrayConverter.java index 34a3e5821..3a50b5ae0 100644 --- a/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/StringArrayConverter.java +++ b/pigx-common/pigx-common-excel/src/main/java/com/pig4cloud/pigx/common/excel/converters/StringArrayConverter.java @@ -18,10 +18,20 @@ public enum StringArrayConverter implements Converter { /** * 实例 */ - 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 { } @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 convertToExcelData(String[] value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { - return new WriteCellData<>(String.join(StrUtil.COMMA, value)); + return new WriteCellData<>(String.join(StrUtil.COMMA, value)); } }