com.pig4cloud.plugin.excel.ExcelHandlerConfiguration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of excel-spring-boot-starter Show documentation
Show all versions of excel-spring-boot-starter Show documentation
easy and high performance excel
package com.pig4cloud.plugin.excel;
import com.alibaba.excel.converters.Converter;
import com.pig4cloud.plugin.excel.aop.ResponseExcelReturnValueHandler;
import com.pig4cloud.plugin.excel.config.ExcelConfigProperties;
import com.pig4cloud.plugin.excel.enhance.DefaultWriterBuilderEnhancer;
import com.pig4cloud.plugin.excel.enhance.WriterBuilderEnhancer;
import com.pig4cloud.plugin.excel.handler.ManySheetWriteHandler;
import com.pig4cloud.plugin.excel.handler.SheetWriteHandler;
import com.pig4cloud.plugin.excel.handler.SingleSheetWriteHandler;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.List;
/**
* @author Hccake 2020/10/28
* @version 1.0
*/
@RequiredArgsConstructor
@Configuration
public class ExcelHandlerConfiguration {
private final ExcelConfigProperties configProperties;
private final ObjectProvider>> converterProvider;
/**
* ExcelBuild增强
* @return DefaultWriterBuilderEnhancer 默认什么也不做的增强器
*/
@Bean
@ConditionalOnMissingBean
public WriterBuilderEnhancer writerBuilderEnhancer() {
return new DefaultWriterBuilderEnhancer();
}
/**
* 单sheet 写入处理器
*/
@Bean
@ConditionalOnMissingBean
public SingleSheetWriteHandler singleSheetWriteHandler() {
return new SingleSheetWriteHandler(configProperties, converterProvider, writerBuilderEnhancer());
}
/**
* 多sheet 写入处理器
*/
@Bean
@ConditionalOnMissingBean
public ManySheetWriteHandler manySheetWriteHandler() {
return new ManySheetWriteHandler(configProperties, converterProvider, writerBuilderEnhancer());
}
/**
* 返回Excel文件的 response 处理器
* @param sheetWriteHandlerList 页签写入处理器集合
* @return ResponseExcelReturnValueHandler
*/
@Bean
@ConditionalOnMissingBean
public ResponseExcelReturnValueHandler responseExcelReturnValueHandler(
List sheetWriteHandlerList) {
return new ResponseExcelReturnValueHandler(sheetWriteHandlerList);
}
}