package com.qianwen.core.excel.extend.handler;
|
|
import com.alibaba.excel.ExcelWriter;
|
import com.alibaba.excel.converters.Converter;
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
import java.util.List;
|
import javax.servlet.http.HttpServletResponse;
|
import com.qianwen.core.excel.extend.annotation.ResponseExcel;
|
import com.qianwen.core.excel.extend.annotation.Sheet;
|
import com.qianwen.core.excel.extend.config.ExcelConfigProperties;
|
import com.qianwen.core.excel.extend.enhance.WriterBuilderEnhancer;
|
import com.qianwen.core.excel.extend.kit.ExcelException;
|
import org.springframework.beans.factory.ObjectProvider;
|
|
/* loaded from: blade-starter-excel-9.3.0.0-SNAPSHOT.jar:org/springblade/core/excel/extend/handler/ManySheetWriteHandler.class */
|
public class ManySheetWriteHandler extends AbstractSheetWriteHandler {
|
public ManySheetWriteHandler(ExcelConfigProperties configProperties, ObjectProvider<List<Converter<?>>> converterProvider, WriterBuilderEnhancer excelWriterBuilderEnhance) {
|
super(configProperties, converterProvider, excelWriterBuilderEnhance);
|
}
|
|
@Override // org.springblade.core.excel.extend.handler.SheetWriteHandler
|
public boolean support(Object obj) {
|
if (obj instanceof List) {
|
List objList = (List) obj;
|
return !objList.isEmpty() && (objList.get(0) instanceof List);
|
}
|
throw new ExcelException("@ResponseExcel 返回值必须为List类型");
|
}
|
|
@Override // org.springblade.core.excel.extend.handler.SheetWriteHandler
|
public void write(Object obj, HttpServletResponse response, ResponseExcel responseExcel) {
|
List objList = (List) obj;
|
ExcelWriter excelWriter = getExcelWriter(response, responseExcel);
|
Sheet[] sheets = responseExcel.sheets();
|
for (int i = 0; i < sheets.length; i++) {
|
List eleList = (List) objList.get(i);
|
Class<?> dataClass = eleList.get(0).getClass();
|
WriteSheet sheet = sheet(sheets[i], dataClass, responseExcel.template(), responseExcel.headGenerator());
|
excelWriter.write(eleList, sheet);
|
}
|
excelWriter.finish();
|
}
|
}
|