|
@@ -6,6 +6,12 @@ import cn.hutool.core.io.IoUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
|
|
+import com.alibaba.excel.ExcelWriter;
|
|
|
|
|
+import com.alibaba.excel.write.builder.ExcelWriterBuilder;
|
|
|
|
|
+import com.alibaba.excel.write.metadata.WriteSheet;
|
|
|
|
|
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
|
|
|
|
|
+import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy;
|
|
|
|
|
+import com.alibaba.excel.write.style.row.SimpleRowHeightStyleStrategy;
|
|
|
import com.nb.core.AppProperties;
|
|
import com.nb.core.AppProperties;
|
|
|
import com.nb.core.enums.BizEnum;
|
|
import com.nb.core.enums.BizEnum;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -13,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import javax.servlet.ServletOutputStream;
|
|
import javax.servlet.ServletOutputStream;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
|
|
+import java.util.Collection;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -22,6 +29,8 @@ import java.util.List;
|
|
|
*/
|
|
*/
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
public class ExcelUtil {
|
|
public class ExcelUtil {
|
|
|
|
|
+ private static HorizontalCellStyleStrategy horizontalCellStyleStrategy =
|
|
|
|
|
+ new CustomHorizontalCellStyleStrategy(StyleUtils.getHeadStyle(), StyleUtils.getContentStyle());
|
|
|
|
|
|
|
|
public static String export(String filename, Class clazz, List list) {
|
|
public static String export(String filename, Class clazz, List list) {
|
|
|
return export(filename, clazz, list, filename);
|
|
return export(filename, clazz, list, filename);
|
|
@@ -41,7 +50,19 @@ public class ExcelUtil {
|
|
|
ServletOutputStream outputStream = response.getOutputStream();
|
|
ServletOutputStream outputStream = response.getOutputStream();
|
|
|
response.setHeader("content-type", "application/octet-stream;charset=UTF-8");
|
|
response.setHeader("content-type", "application/octet-stream;charset=UTF-8");
|
|
|
response.setContentType("application/octet-stream;charset=UTF-8");
|
|
response.setContentType("application/octet-stream;charset=UTF-8");
|
|
|
- EasyExcel.write(outputStream, clazz).head(clazz).sheet(filename).doWrite(list);
|
|
|
|
|
|
|
+ ExcelWriter write = EasyExcel.write(outputStream, clazz).build();
|
|
|
|
|
+ createSheet(write,0,"全部数据",clazz,list);
|
|
|
|
|
+ IoUtil.flush(outputStream);
|
|
|
|
|
+ write.finish();
|
|
|
IoUtil.close(outputStream);
|
|
IoUtil.close(outputStream);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ private static <T> void createSheet(ExcelWriter excelWriter, int sheetNo, String sheetName, Class<T> aClass, Collection<T> data){
|
|
|
|
|
+ WriteSheet writeSheet = EasyExcel.writerSheet(sheetNo, sheetName)
|
|
|
|
|
+ .registerWriteHandler(horizontalCellStyleStrategy)
|
|
|
|
|
+ .registerWriteHandler(new SimpleColumnWidthStyleStrategy(13))
|
|
|
|
|
+ .registerWriteHandler(new SimpleRowHeightStyleStrategy((short) 20, (short) 20))
|
|
|
|
|
+ .head(aClass).build();
|
|
|
|
|
+ excelWriter.write(data,writeSheet);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|