mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-10 21:19:00 +08:00
✨ Introducing new features. 支持 LocalTime 类型转换
This commit is contained in:
1 parent
d731366d86
commit
2f85b35bd5
3 files changed
+67
-8
No files matched your search
+2
-4
@@ -2,10 +2,7 @@ package com.pig4cloud.pigx.common.excel.aop;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.pig4cloud.pigx.common.excel.annotation.RequestExcel;
|
||||
import com.pig4cloud.pigx.common.excel.converters.LocalDateStringConverter;
|
||||
import com.pig4cloud.pigx.common.excel.converters.LocalDateTimeStringConverter;
|
||||
import com.pig4cloud.pigx.common.excel.converters.LongStringConverter;
|
||||
import com.pig4cloud.pigx.common.excel.converters.StringArrayConverter;
|
||||
import com.pig4cloud.pigx.common.excel.converters.*;
|
||||
import com.pig4cloud.pigx.common.excel.handler.ListAnalysisEventListener;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -75,6 +72,7 @@ public class RequestExcelArgumentResolver implements HandlerMethodArgumentResolv
|
||||
|
||||
// 这里需要指定读用哪个 class 去读,然后读取第一个 sheet 文件流会自动关闭
|
||||
EasyExcel.read(inputStream, excelModelClass, readListener).registerConverter(LocalDateStringConverter.INSTANCE)
|
||||
.registerConverter(LocalTimeStringConverter.INSTANCE)
|
||||
.registerConverter(LocalDateTimeStringConverter.INSTANCE)
|
||||
.registerConverter(LongStringConverter.INSTANCE).registerConverter(StringArrayConverter.INSTANCE)
|
||||
.ignoreEmptyRow(requestExcel.ignoreEmptyRow()).sheet().headRowNumber(requestExcel.headRowNumber())
|
||||
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
package com.pig4cloud.pigx.common.excel.converters;
|
||||
|
||||
import com.alibaba.excel.converters.Converter;
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||||
import com.alibaba.excel.metadata.GlobalConfiguration;
|
||||
import com.alibaba.excel.metadata.data.ReadCellData;
|
||||
import com.alibaba.excel.metadata.data.WriteCellData;
|
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
/**
|
||||
* LocalDate and string converter
|
||||
*
|
||||
* @author L.cm
|
||||
*/
|
||||
public enum LocalTimeStringConverter implements Converter<LocalTime> {
|
||||
|
||||
/**
|
||||
* 实例
|
||||
*/
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Class supportJavaTypeKey() {
|
||||
return LocalTime.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CellDataTypeEnum supportExcelTypeKey() {
|
||||
return CellDataTypeEnum.STRING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalTime convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty,
|
||||
GlobalConfiguration globalConfiguration) throws ParseException {
|
||||
if (contentProperty == null || contentProperty.getDateTimeFormatProperty() == null) {
|
||||
return LocalTime.parse(cellData.getStringValue());
|
||||
}
|
||||
else {
|
||||
DateTimeFormatter formatter = DateTimeFormatter
|
||||
.ofPattern(contentProperty.getDateTimeFormatProperty().getFormat());
|
||||
return LocalTime.parse(cellData.getStringValue(), formatter);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public WriteCellData<String> convertToExcelData(LocalTime value, ExcelContentProperty contentProperty,
|
||||
GlobalConfiguration globalConfiguration) {
|
||||
DateTimeFormatter formatter;
|
||||
if (contentProperty == null || contentProperty.getDateTimeFormatProperty() == null) {
|
||||
formatter = DateTimeFormatter.ISO_LOCAL_TIME;
|
||||
}
|
||||
else {
|
||||
formatter = DateTimeFormatter.ofPattern(contentProperty.getDateTimeFormatProperty().getFormat());
|
||||
}
|
||||
return new WriteCellData<>(value.format(formatter));
|
||||
}
|
||||
|
||||
}
|
||||
+2
-4
@@ -11,15 +11,12 @@ import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||
import com.pig4cloud.pigx.common.excel.annotation.Sheet;
|
||||
import com.pig4cloud.pigx.common.excel.aop.DynamicNameAspect;
|
||||
import com.pig4cloud.pigx.common.excel.config.ExcelConfigProperties;
|
||||
import com.pig4cloud.pigx.common.excel.converters.LongStringConverter;
|
||||
import com.pig4cloud.pigx.common.excel.converters.StringArrayConverter;
|
||||
import com.pig4cloud.pigx.common.excel.converters.*;
|
||||
import com.pig4cloud.pigx.common.excel.enhance.WriterBuilderEnhancer;
|
||||
import com.pig4cloud.pigx.common.excel.head.HeadGenerator;
|
||||
import com.pig4cloud.pigx.common.excel.head.HeadMeta;
|
||||
import com.pig4cloud.pigx.common.excel.head.I18nHeaderCellWriteHandler;
|
||||
import com.pig4cloud.pigx.common.excel.kit.ExcelException;
|
||||
import com.pig4cloud.pigx.common.excel.converters.LocalDateStringConverter;
|
||||
import com.pig4cloud.pigx.common.excel.converters.LocalDateTimeStringConverter;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
@@ -108,6 +105,7 @@ public abstract class AbstractSheetWriteHandler implements SheetWriteHandler, Ap
|
||||
@SneakyThrows(IOException.class)
|
||||
public ExcelWriter getExcelWriter(HttpServletResponse response, ResponseExcel responseExcel) {
|
||||
ExcelWriterBuilder writerBuilder = EasyExcel.write(response.getOutputStream())
|
||||
.registerConverter(LocalTimeStringConverter.INSTANCE)
|
||||
.registerConverter(LocalDateStringConverter.INSTANCE)
|
||||
.registerConverter(LocalDateTimeStringConverter.INSTANCE)
|
||||
.registerConverter(LongStringConverter.INSTANCE).registerConverter(StringArrayConverter.INSTANCE)
|
||||
|
||||
Reference in new issue
Block a user