⚡ 同步 excel-spring-boot-starter 代码
This commit is contained in:
@@ -11,6 +11,7 @@ import com.hccake.common.excel.converters.LocalDateStringConverter;
|
||||
import com.hccake.common.excel.converters.LocalDateTimeStringConverter;
|
||||
import com.hccake.common.excel.kit.ExcelException;
|
||||
import lombok.SneakyThrows;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -27,6 +28,7 @@ import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author lengleng
|
||||
* @author L.cm
|
||||
* @date 2020/3/31
|
||||
*/
|
||||
public abstract class AbstractSheetWriteHandler implements SheetWriteHandler {
|
||||
@@ -93,9 +95,12 @@ public abstract class AbstractSheetWriteHandler implements SheetWriteHandler {
|
||||
}
|
||||
}
|
||||
|
||||
// 自定义注入的转换器
|
||||
registerCustomConverter(writerBuilder);
|
||||
|
||||
if (responseExcel.converter().length != 0) {
|
||||
for (Class<? extends Converter> clazz : responseExcel.converter()) {
|
||||
writerBuilder.registerConverter(clazz.newInstance());
|
||||
writerBuilder.registerConverter(BeanUtils.instantiateClass(clazz));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,4 +114,10 @@ public abstract class AbstractSheetWriteHandler implements SheetWriteHandler {
|
||||
return writerBuilder.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义注入转换器
|
||||
* @param builder ExcelWriterBuilder
|
||||
*/
|
||||
public abstract void registerCustomConverter(ExcelWriterBuilder builder);
|
||||
|
||||
}
|
||||
|
||||
@@ -2,12 +2,15 @@ package com.hccake.common.excel.handler;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.converters.Converter;
|
||||
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.hccake.common.excel.annotation.ResponseExcel;
|
||||
import com.hccake.common.excel.config.ExcelConfigProperties;
|
||||
import com.hccake.common.excel.kit.ExcelException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -24,6 +27,8 @@ public class ManySheetWriteHandler extends AbstractSheetWriteHandler {
|
||||
|
||||
private final ExcelConfigProperties configProperties;
|
||||
|
||||
private final ObjectProvider<List<Converter<?>>> converterProvider;
|
||||
|
||||
/**
|
||||
* 当且仅当List不为空且List中的元素也是List 才返回true
|
||||
* @param obj 返回对象
|
||||
@@ -65,4 +70,9 @@ public class ManySheetWriteHandler extends AbstractSheetWriteHandler {
|
||||
excelWriter.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCustomConverter(ExcelWriterBuilder builder) {
|
||||
converterProvider.ifAvailable(converters -> converters.forEach(builder::registerConverter));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,12 +2,15 @@ package com.hccake.common.excel.handler;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.converters.Converter;
|
||||
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.hccake.common.excel.annotation.ResponseExcel;
|
||||
import com.hccake.common.excel.config.ExcelConfigProperties;
|
||||
import com.hccake.common.excel.kit.ExcelException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -26,6 +29,8 @@ public class SingleSheetWriteHandler extends AbstractSheetWriteHandler {
|
||||
|
||||
private final ExcelConfigProperties configProperties;
|
||||
|
||||
private final ObjectProvider<List<Converter<?>>> converterProvider;
|
||||
|
||||
/**
|
||||
* obj 是List 且list不为空同时list中的元素不是是List 才返回true
|
||||
* @param obj 返回对象
|
||||
@@ -56,4 +61,9 @@ public class SingleSheetWriteHandler extends AbstractSheetWriteHandler {
|
||||
excelWriter.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCustomConverter(ExcelWriterBuilder builder) {
|
||||
converterProvider.ifAvailable(converters -> converters.forEach(builder::registerConverter));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user