同步 excel-spring-boot-starter 代码

This commit is contained in:
b2baccline
2020-10-27 18:37:23 +08:00
parent 1290146fb3
commit 4402570f7d
3 changed files with 32 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}