From 95db36f778d5a6f4197cc2cde4390c84e57b26b6 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 31 一月 2024 09:36:53 +0800
Subject: [PATCH] 开发业务接口

---
 server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java |   68 ++++++++++++++++++++++++++++------
 1 files changed, 56 insertions(+), 12 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index 83268e3..3526bbe 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -17,6 +17,7 @@
 import org.springframework.core.annotation.AnnotationConfigurationException;
 
 import javax.servlet.http.HttpServletResponse;
+import javax.swing.*;
 import java.io.*;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
@@ -251,7 +252,24 @@
         }
         return new ArrayList<>(sortedFields.values());
     }
-
+    /**
+     * 閰嶇疆鏁版嵁鍗曞厓鏍�
+     */
+    private void configDataCell (SXSSFWorkbook workbook, Cell cell ) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 璁剧疆鑳屾櫙
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+//        style.setFillForegroundColor(columnConfig.dataBackgroundColor().getIndex());
+        // 瀛椾綋
+        Font font = workbook.createFont();
+        style.setFont(font);
+        // 杈规
+        configCellBorder(style);
+        style.setWrapText(true);
+        cell.setCellStyle(style);
+    }
     /**
      * 閰嶇疆鏁版嵁鍗曞厓鏍�
      */
@@ -309,7 +327,7 @@
         style.setVerticalAlignment(VerticalAlignment.CENTER);
         // 璁剧疆鑳屾櫙
         style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-//        style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+        style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
         // 瀛椾綋
         Font font = workbook.createFont();
         font.setFontHeightInPoints((short)12);
@@ -317,6 +335,22 @@
         style.setFont(font);
         // 璁剧疆杈规
         configCellBorder(style);
+        cell.setCellStyle(style);
+    }
+    private void configTitleCell (SXSSFWorkbook workbook, Cell cell ) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 璁剧疆鑳屾櫙
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        // 瀛椾綋
+        Font font = workbook.createFont();
+        font.setFontHeightInPoints((short)12);
+        font.setBold(true);
+        style.setFont(font);
+        // 璁剧疆杈规
+        configCellBorder(style);
+//        configCellBorder(style);
         cell.setCellStyle(style);
     }
     /**
@@ -444,14 +478,19 @@
         try {
             sxssfWorkbook = new SXSSFWorkbook();
             Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+            for (int i = 0; i < 6; i++) {
+                sheet.setColumnWidth(i, (i==5?20:15) * 2 * 256);
+            }
             sheet.createFreezePane(0, 1);
-            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,6));
             Row title = sheet.createRow(0);
-            title.setHeight((short) 1000);
-            Cell c = title.createCell(0);
-            c.setCellValue(sheetName);
-            configFirstCell(sxssfWorkbook,c);
+            title.setHeight((short) 800);
+            for (int i = 0; i < 6; i++) {
+                title.createCell(i).setCellValue(i==0?sheetName:"");
+                configTitleCell(sxssfWorkbook,title.getCell(i));
+            }
+            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,5));
             Row header1 = sheet.createRow(1);
+            header1.setHeight((short) 500);
             header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
             header1.createCell(1).setCellValue("淇濋櫓鏂规");
             header1.createCell(2).setCellValue("淇濋櫓鐢熸晥璧锋湡");
@@ -468,17 +507,17 @@
             header2.createCell(3).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
             header2.createCell(4).setCellValue(data.getInsureNum());
             header2.createCell(5).setCellValue(Constants.formatBigdecimal2Float(data.getFee()).toString());
-            //绌虹櫧琛�
-            Row header3 = sheet.createRow(3);
-            sheet.addMergedRegion(new CellRangeAddress(3  ,3,0,6));
-
-            Row header4 = sheet.createRow(4);
+            for (int i = 0; i < 6; i++) {
+                configDataCell(sxssfWorkbook,   header2.getCell(i));
+            }
+            Row header4 = sheet.createRow(3);
             header4.createCell(0).setCellValue("搴忓彿");
             header4.createCell(1).setCellValue("鍛樺伐濮撳悕");
             header4.createCell(2).setCellValue("鎬у埆");
             header4.createCell(3).setCellValue("韬唤璇佸彿");
             header4.createCell(4).setCellValue("娲鹃仯鍗曚綅");
             header4.createCell(5).setCellValue("鎵�灞炲伐绉�");
+            header4.setHeight((short) 500);
             for (int i = 0; i < 6; i++) {
                 configFirstCell(sxssfWorkbook,header4.getCell(i));
             }
@@ -487,12 +526,17 @@
                 for (int rowIndex = 0; rowIndex < data.getApplyDetailList().size(); rowIndex++) {
                     ApplyDetail d = data.getApplyDetailList().get(rowIndex);
                     Row header5 = sheet.createRow(rowIndex + 4);
+//                    header5.setHeight((short) 300);
                     header5.createCell(0).setCellValue(rowIndex+1);
                     header5.createCell(1).setCellValue(StringUtils.defaultString(d.getMemberName(),""));
                     header5.createCell(2).setCellValue(Constants.equalsInteger(d.getSex(),0)?"鐢�":(Constants.equalsInteger(d.getSex(),1)?"濂�":"-"));
                     header5.createCell(3).setCellValue(StringUtils.defaultString(d.getIdcardNo(),""));
                     header5.createCell(4).setCellValue(StringUtils.defaultString(d.getDuName(),""));
                     header5.createCell(5).setCellValue(StringUtils.defaultString(d.getWorkTypeName(),""));
+                    // 璁剧疆鏁版嵁鍗曞厓鏍�
+                    for (int i = 0; i < 6; i++) {
+                        configDataCell(sxssfWorkbook,   header5.getCell(i));
+                    }
                 }
             }
             sxssfWorkbook.write(os);

--
Gitblit v1.9.3