解决日均水位年报导出问题

master
wany 2024-09-05 10:01:35 +08:00
parent 097d13e723
commit 96ee468856
1 changed files with 46 additions and 43 deletions

View File

@ -6,7 +6,6 @@ import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.merge.LoopMergeStrategy;
import com.alibaba.excel.write.merge.OnceAbsoluteMergeStrategy;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.gunshi.project.xyt.util.excel.ExcelFillCellMergeStrategy;
@ -28,15 +27,15 @@ public class ExcelUtil {
/**
* excel
*
* @param list ,
* @param list ,
* @param filename
* @param clazz
* @param response
* @param clazz
* @param response
*/
public static <T> void exportExcel(List<T> list, String filename, Class<T> clazz, HttpServletResponse response,String sheetName) {
public static <T> void exportExcel(List<T> list, String filename, Class<T> clazz, HttpServletResponse response, String sheetName) {
OutputStream out = null;
try {
out = getOutputStream(filename,response);
out = getOutputStream(filename, response);
ExcelWriterSheetBuilder builder = EasyExcel.write(out, clazz)
//是否自动关闭流
.autoCloseStream(Boolean.FALSE)
@ -46,7 +45,7 @@ public class ExcelUtil {
builder.doWrite(list);
} finally {
try {
if (out != null){
if (out != null) {
out.flush();
out.close();
}
@ -59,20 +58,20 @@ public class ExcelUtil {
/**
* excel,
*
* @param list ,
* @param list ,
* @param filename
* @param clazz
* @param response
* @param clazz
* @param response
*/
public static <T> void exportExcel(List<T> list, String filename, Class<T> clazz, HttpServletResponse response,String sheetName,Integer type) {
public static <T> void exportExcel(List<T> list, String filename, Class<T> clazz, HttpServletResponse response, String sheetName, Integer type) {
OutputStream out = null;
try {
out = getOutputStream(filename,response);
if(type == 1){
OnceAbsoluteMergeStrategy strategy = new OnceAbsoluteMergeStrategy(36,36,1,2);
OnceAbsoluteMergeStrategy strategy1 = new OnceAbsoluteMergeStrategy(36,36,3,6);
OnceAbsoluteMergeStrategy strategy2 = new OnceAbsoluteMergeStrategy(36,36,7,8);
OnceAbsoluteMergeStrategy strategy3 = new OnceAbsoluteMergeStrategy(36,36,9,12);
out = getOutputStream(filename, response);
if (type == 1) {
OnceAbsoluteMergeStrategy strategy = new OnceAbsoluteMergeStrategy(36, 36, 1, 2);
OnceAbsoluteMergeStrategy strategy1 = new OnceAbsoluteMergeStrategy(36, 36, 3, 6);
OnceAbsoluteMergeStrategy strategy2 = new OnceAbsoluteMergeStrategy(36, 36, 7, 8);
OnceAbsoluteMergeStrategy strategy3 = new OnceAbsoluteMergeStrategy(36, 36, 9, 12);
ExcelWriterSheetBuilder builder = EasyExcel.write(out, clazz)
//是否自动关闭流
.autoCloseStream(Boolean.FALSE)
@ -84,29 +83,31 @@ public class ExcelUtil {
.registerWriteHandler(strategy3)
.sheet(sheetName);
builder.doWrite(list);
}else{
LoopMergeStrategy loopMergeStrategy = new LoopMergeStrategy(1,2,0);
OnceAbsoluteMergeStrategy strategy1 = new OnceAbsoluteMergeStrategy(33,37,0,0);
OnceAbsoluteMergeStrategy strategy2 = new OnceAbsoluteMergeStrategy(38,38,0,1);
OnceAbsoluteMergeStrategy strategy3 = new OnceAbsoluteMergeStrategy(38,38,3,5);
OnceAbsoluteMergeStrategy strategy4 = new OnceAbsoluteMergeStrategy(38,38,7,9);
OnceAbsoluteMergeStrategy strategy5 = new OnceAbsoluteMergeStrategy(38,38,11,13);
} else {
OnceAbsoluteMergeStrategy strategy1 = new OnceAbsoluteMergeStrategy(33, 37, 0, 0);
OnceAbsoluteMergeStrategy strategy2 = new OnceAbsoluteMergeStrategy(38, 38, 0, 1);
OnceAbsoluteMergeStrategy strategy3 = new OnceAbsoluteMergeStrategy(38, 38, 3, 5);
OnceAbsoluteMergeStrategy strategy4 = new OnceAbsoluteMergeStrategy(38, 38, 7, 9);
OnceAbsoluteMergeStrategy strategy5 = new OnceAbsoluteMergeStrategy(38, 38, 11, 13);
ExcelWriterSheetBuilder builder = EasyExcel.write(out, clazz)
//是否自动关闭流
.autoCloseStream(Boolean.FALSE)
.registerWriteHandler(new VoteTitleHandler(filename))
.registerWriteHandler(loopMergeStrategy)
.registerWriteHandler(strategy1)
.registerWriteHandler(strategy2)
.registerWriteHandler(strategy3)
.registerWriteHandler(strategy4)
.registerWriteHandler(strategy5)
.sheet(sheetName);
for (int i = 2; i < 33; i++) {
OnceAbsoluteMergeStrategy strategy = new OnceAbsoluteMergeStrategy(i, i, 0, 1);
builder.registerWriteHandler(strategy);
}
builder.doWrite(list);
}
} finally {
try {
if (out != null){
if (out != null) {
out.flush();
out.close();
}
@ -118,17 +119,18 @@ public class ExcelUtil {
/**
*
* @param head
* @param data
*
* @param head
* @param data
* @param filename
* @param response
* @param sheetName
* @param <T>
*/
public static <T> void exportExcel(List<List<String>> head,List<T> data, String filename, HttpServletResponse response,String sheetName) {
public static <T> void exportExcel(List<List<String>> head, List<T> data, String filename, HttpServletResponse response, String sheetName) {
OutputStream out = null;
try {
out = getOutputStream(filename,response);
out = getOutputStream(filename, response);
ExcelWriterSheetBuilder builder = EasyExcel.write(out)
//是否自动关闭流
.autoCloseStream(Boolean.FALSE)
@ -139,7 +141,7 @@ public class ExcelUtil {
builder.doWrite(data);
} finally {
try {
if (out != null){
if (out != null) {
out.flush();
out.close();
}
@ -150,30 +152,31 @@ public class ExcelUtil {
}
/**
*
* @param head
* @param data
* @param mergeRowIndex
*
*
* @param head
* @param data
* @param mergeRowIndex
* @param mergeColumnIndex new int[]{0,1,2,3,4}
* @param filename
* @param response
* @param sheetName
* @param <T>
*/
public static <T> void exportExcel(List<List<String>> head,List<T> data,int mergeRowIndex,int[] mergeColumnIndex, String filename, HttpServletResponse response,String sheetName) {
public static <T> void exportExcel(List<List<String>> head, List<T> data, int mergeRowIndex, int[] mergeColumnIndex, String filename, HttpServletResponse response, String sheetName) {
OutputStream out = null;
try {
out = getOutputStream(filename,response);
out = getOutputStream(filename, response);
ExcelWriterSheetBuilder builder = EasyExcel.write(out)
//是否自动关闭流
.autoCloseStream(Boolean.FALSE)
.registerWriteHandler(new ExcelFillCellMergeStrategy(mergeRowIndex,mergeColumnIndex))
.registerWriteHandler(new ExcelFillCellMergeStrategy(mergeRowIndex, mergeColumnIndex))
.head(head)
.sheet(sheetName);
builder.doWrite(data);
} finally {
try {
if (out != null){
if (out != null) {
out.flush();
out.close();
}
@ -196,9 +199,9 @@ public class ExcelUtil {
public static <T> void exportTemplate(Map<String, Object> data, List<T> list, String filename, String templatePath, HttpServletResponse response) {
OutputStream out = null;
try {
out = getOutputStream(filename,response);
out = getOutputStream(filename, response);
ClassPathResource templateResource = new ClassPathResource(templatePath);
ExcelWriter excelWriter = EasyExcel.write(out)
ExcelWriter excelWriter = EasyExcel.write(out)
.withTemplate(templateResource.getStream())
.excelType(ExcelTypeEnum.XLSX)
.build();
@ -206,12 +209,12 @@ public class ExcelUtil {
if (CollUtil.isEmpty(data)) {
throw new IllegalArgumentException("数据为空");
}
excelWriter.fill(list,writeSheet);
excelWriter.fill(list, writeSheet);
excelWriter.fill(data, writeSheet);
excelWriter.finish();
} finally {
try {
if (out != null){
if (out != null) {
out.flush();
out.close();
}