From 07ca844b3441a2774a1ca02a952e27e3fe986819 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 19 二月 2025 17:50:44 +0800
Subject: [PATCH] jtt808初始化

---
 server/services/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java |  625 ++++++++++++--------------------------------------------
 1 files changed, 135 insertions(+), 490 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/services/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index cfeb782..d2fac34 100644
--- a/server/services/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/services/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -4,40 +4,25 @@
 import com.doumee.core.exception.BusinessException;
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.CharUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.poi.hssf.usermodel.HSSFRichTextString;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.core.annotation.AnnotationConfigurationException;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
-import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
-import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Excel瀵煎嚭瀹炵幇
  * @author Eva.Caesar Liu
- * @date 2022/04/18 18:12
+ * @date 2023/02/14 11:14
  */
 @Data
 public class ExcelExporter<T> {
@@ -48,13 +33,6 @@
 
     private ExcelExporter(){}
 
-
-
-    private final static Logger log = LoggerFactory.getLogger(ExcelExporter.class);
-
-    private final static String EXCEL2003 = "xls";
-    private final static String EXCEL2007 = "xlsx";
-
     /**
      * 鏋勯�犲櫒
      * @param modelClass 瀹炰綋Class瀵硅薄
@@ -63,6 +41,75 @@
         ExcelExporter<T> excelExporter = new ExcelExporter<>();
         excelExporter.setModelClass(modelClass);
         return excelExporter;
+    }
+    /**
+     * 瀵煎嚭鍒版寚瀹氳緭鍑烘祦
+     * @param data 鏁版嵁
+     * @param sheetName Sheet鍚嶇О
+     */
+    public void exportWithFirstAndEnd (List<T> data, String sheetName,String first,String end, OutputStream os) {
+        SXSSFWorkbook sxssfWorkbook;
+        try {
+            sxssfWorkbook = new SXSSFWorkbook();
+            Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+            // 鍒涘缓鍒楀ご
+            sheet.createFreezePane(0, 2);
+            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,this.getColumns().size()-1));
+            Row title = sheet.createRow(0);
+            title.setHeight((short) 1000);
+            Cell c = title.createCell(0);
+            c.setCellValue(first);
+            configFirstCell(sxssfWorkbook,c);
+
+            Row header = sheet.createRow(1);
+            List<ColumnInfo> columns = this.getColumns();
+            for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+                ColumnInfo column = columns.get(columnIndex);
+                Cell cell = header.createCell(columnIndex);
+                cell.setCellValue(column.columnConfig.name());
+                // 鍒楀璁剧疆
+                if (column.columnConfig.width() == -1) {
+                    sheet.setColumnWidth(columnIndex, column.columnConfig.name().length() * 2 * 256);
+                } else {
+                    sheet.setColumnWidth(columnIndex, column.columnConfig.width() * 2 * 256);
+                }
+                // 璁剧疆鍒楀ご鍗曞厓鏍�
+                configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
+            }
+            // 鍒涘缓鏁版嵁璁板綍
+            for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
+                Row row = sheet.createRow(rowIndex + 2);
+                for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+                    ColumnInfo column = columns.get(columnIndex);
+                    Cell cell = row.createCell(columnIndex);
+                    cell.setCellValue(getCellData(column, data.get(rowIndex)));
+
+                    // 璁剧疆鏁版嵁鍗曞厓鏍�
+                    configDataCell(sxssfWorkbook, cell, column.columnConfig);
+
+                }
+            }
+
+
+            sheet.addMergedRegion(new CellRangeAddress(data.size()+2   ,data.size()+2,0,this.getColumns().size()-1));
+            Row endRow = sheet.createRow(data.size()+2);
+//            endRow.setHeight((short) 600);
+            Cell c1 = endRow.createCell(0);
+            c1.setCellValue(end);
+            configEndCell(sxssfWorkbook,c1);
+            sxssfWorkbook.write(os);
+            os.close();
+        } catch (Exception e) {
+            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
+        } finally {
+            if (os != null) {
+                try {
+                    os.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
     }
 
     /**
@@ -75,8 +122,6 @@
         SXSSFWorkbook sxssfWorkbook;
         try {
             sxssfWorkbook = new SXSSFWorkbook();
-
-            CellStyle style = sxssfWorkbook.createCellStyle();
             Sheet sheet = sxssfWorkbook.createSheet(sheetName);
             // 鍒涘缓鍒楀ご
             sheet.createFreezePane(0, 1);
@@ -93,7 +138,7 @@
                     sheet.setColumnWidth(columnIndex, column.columnConfig.width() * 2 * 256);
                 }
                 // 璁剧疆鍒楀ご鍗曞厓鏍�
-                configHeaderCell(sxssfWorkbook, cell, column.columnConfig,style);
+                configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
             }
             // 鍒涘缓鏁版嵁璁板綍
             for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
@@ -102,8 +147,10 @@
                     ColumnInfo column = columns.get(columnIndex);
                     Cell cell = row.createCell(columnIndex);
                     cell.setCellValue(getCellData(column, data.get(rowIndex)));
+
                     // 璁剧疆鏁版嵁鍗曞厓鏍�
-                    configDataCell(sxssfWorkbook, cell, column.columnConfig,style);
+                    configDataCell(sxssfWorkbook, cell, column.columnConfig);
+
                 }
             }
             sxssfWorkbook.write(os);
@@ -140,26 +187,6 @@
             throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
         }
     }
-
-    /**
-     * 瀵煎嚭鑷冲搷搴旀祦
-     * @param data 鏁版嵁
-     * @param fileName Excel鏂囦欢鍚�
-     * @param response HttpServletResponse瀵硅薄
-     */
-    public void export (List<T> data, String fileName, HttpServletResponse response) {
-        this.export(data, fileName, DEFAULT_SHEET_NAME, response);
-    }
-    /**
-     * 瀵煎嚭鑷冲搷搴旀祦
-     * @param data 鏁版嵁
-     * @param fileName Excel鏂囦欢鍚�
-     * @param response HttpServletResponse瀵硅薄
-     */
-    public void exportWithFirstAndEnd (List<T> data, String fileName,String first,String end, HttpServletResponse response) {
-        this.exportWithFirstAndEnd(data, fileName, DEFAULT_SHEET_NAME, first,end,response);
-    }
-
     /**
      * 瀵煎嚭鑷冲搷搴旀祦
      * @param data 鏁版嵁
@@ -179,74 +206,48 @@
             throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
         }
     }
-    /**
-     * 瀵煎嚭鍒版寚瀹氳緭鍑烘祦
-     * @param data 鏁版嵁
-     * @param sheetName Sheet鍚嶇О
-     */
-    public void exportWithFirstAndEnd (List<T> data, String sheetName,String first,String end, OutputStream os) {
-        SXSSFWorkbook sxssfWorkbook;
-        try {
-            sxssfWorkbook = new SXSSFWorkbook();
-            Sheet sheet = sxssfWorkbook.createSheet(sheetName);
-            // 鍒涘缓鍒楀ご
-            sheet.createFreezePane(0, 2);
-            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,this.getColumns().size()-1));
-            Row title = sheet.createRow(0);
-            title.setHeight((short) 1000);
-            Cell c = title.createCell(0);
-            c.setCellValue(first);
-            configFirstCell(sxssfWorkbook,c);
 
-            Row header = sheet.createRow(1);
-            header.setHeight((short)600);
-            List<ColumnInfo> columns = this.getColumns();
-            for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
-                ColumnInfo column = columns.get(columnIndex);
-                Cell cell = header.createCell(columnIndex);
-                cell.setCellValue(new HSSFRichTextString(column.columnConfig.name()));
-                // 鍒楀璁剧疆
-                if (column.columnConfig.width() == -1) {
-                    sheet.setColumnWidth(columnIndex, column.columnConfig.name().length() * 2 * 256);
-                } else {
-                    sheet.setColumnWidth(columnIndex, column.columnConfig.width() * 2 * 256);
-                }
-                // 璁剧疆鍒楀ご鍗曞厓鏍�
-                configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
-            }
-            // 鍒涘缓鏁版嵁璁板綍
-            for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
-                Row row = sheet.createRow(rowIndex + 2);
-                for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
-                    ColumnInfo column = columns.get(columnIndex);
-                    Cell cell = row.createCell(columnIndex);
-                    cell.setCellValue(getCellData(column, data.get(rowIndex)));
-                    // 璁剧疆鏁版嵁鍗曞厓鏍�
-                    configDataCell(sxssfWorkbook, cell, column.columnConfig);
-                }
-            }
-            if(StringUtils.isNotBlank(end)){
-                sheet.addMergedRegion(new CellRangeAddress(data.size()+2   ,data.size()+2,0,this.getColumns().size()-1));
-                Row endRow = sheet.createRow(data.size()+2);
-//            endRow.setHeight((short) 600);
-                Cell c1 = endRow.createCell(0);
-                c1.setCellValue(end);
-                configEndCell(sxssfWorkbook,c1);
-            }
-            sxssfWorkbook.write(os);
-            os.close();
-        } catch (Exception e) {
-            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
-        } finally {
-            if (os != null) {
-                try {
-                    os.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
+    /**
+     * 瀵煎嚭鑷冲搷搴旀祦
+     * @param data 鏁版嵁
+     * @param fileName Excel鏂囦欢鍚�
+     * @param response HttpServletResponse瀵硅薄
+     */
+    public void export (List<T> data, String fileName, HttpServletResponse response) {
+
+        this.export(data, fileName, DEFAULT_SHEET_NAME, response);
     }
+    /**
+     * 瀵煎嚭鑷冲搷搴旀祦
+     * @param data 鏁版嵁
+     * @param fileName Excel鏂囦欢鍚�
+     * @param response HttpServletResponse瀵硅薄
+     */
+    public void exportWithFirstAndEnd (List<T> data, String fileName,String first,String end, HttpServletResponse response) {
+        this.exportWithFirstAndEnd(data, fileName, DEFAULT_SHEET_NAME, first,end,response);
+    }
+
+    /**O
+     * 鑾峰彇鍒楅泦鍚�
+     */
+    private List<ColumnInfo> getColumns () {
+        Map<Integer, ColumnInfo> sortedFields = new TreeMap<>();
+        Field[] fields = modelClass.getDeclaredFields();
+        int index = 0;
+        for (Field field : fields) {
+            ExcelColumn excelColumn = field.getAnnotation(ExcelColumn.class);
+            if (excelColumn == null) {
+                continue;
+            }
+            if (sortedFields.get(excelColumn.index()) != null) {
+                throw new AnnotationConfigurationException("Excel column contains the same index.");
+            }
+            sortedFields.put(excelColumn.index() == -1 ? index : excelColumn.index(), new ColumnInfo(excelColumn, field));
+            index++;
+        }
+        return new ArrayList<>(sortedFields.values());
+    }
+
     /**
      * 閰嶇疆鏁版嵁鍗曞厓鏍�
      */
@@ -272,6 +273,25 @@
         style.setWrapText(true);
         cell.setCellStyle(style);
     }
+
+    /**
+     * 閰嶇疆鍒楀ご鍗曞厓鏍�
+     */
+    private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(columnConfig.align());
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 璁剧疆鑳屾櫙
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        style.setFillForegroundColor(columnConfig.backgroundColor().getIndex());
+        // 瀛椾綋
+        Font font = workbook.createFont();
+        font.setFontHeightInPoints(columnConfig.fontSize());
+        style.setFont(font);
+        // 璁剧疆杈规
+        configCellBorder(style);
+        cell.setCellStyle(style);
+    }
     /**
      * 閰嶇疆鍒楀ご鍗曞厓鏍�
      */
@@ -281,11 +301,10 @@
         style.setVerticalAlignment(VerticalAlignment.CENTER);
         // 璁剧疆鑳屾櫙
         style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-        style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
+        style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
         // 瀛椾綋
         Font font = workbook.createFont();
-        font.setFontHeightInPoints((short)24);
-        font.setBold(true);
+        font.setFontHeightInPoints((short)18);
         style.setFont(font);
         // 璁剧疆杈规
         configCellBorder(style);
@@ -304,96 +323,6 @@
         // 瀛椾綋
         Font font = workbook.createFont();
         font.setFontHeightInPoints((short)14);
-        style.setFont(font);
-        // 璁剧疆杈规
-        configCellBorder(style);
-        cell.setCellStyle(style);
-    }
-    /**
-     * 閰嶇疆鍒楀ご鍗曞厓鏍�
-     */
-    private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig) {
-        CellStyle style = workbook.createCellStyle();
-        style.setAlignment(columnConfig.align());
-        style.setVerticalAlignment(VerticalAlignment.CENTER);
-        // 璁剧疆鑳屾櫙
-        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-//        style.setFillForegroundColor(columnConfig.backgroundColor().getIndex());
-        style.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
-        // 瀛椾綋
-        Font font = workbook.createFont();
-        font.setFontHeightInPoints((short)11);
-        font.setColor(columnConfig.color().index);
-        font.setBold(true);
-        style.setFont(font);
-        // 璁剧疆杈规
-        style.setWrapText(true);
-        configCellBorder(style);
-        cell.setCellStyle(style);
-    }
-    /**
-     * 鑾峰彇鍒楅泦鍚�
-     */
-    private List<ColumnInfo> getColumns () {
-        Map<Integer, ColumnInfo> sortedFields = new TreeMap<>();
-        Field[] fields = modelClass.getDeclaredFields();
-        int index = 0;
-        for (Field field : fields) {
-            ExcelColumn excelColumn = field.getAnnotation(ExcelColumn.class);
-            if (excelColumn == null) {
-                continue;
-            }
-            if (sortedFields.get(excelColumn.index()) != null) {
-                throw new AnnotationConfigurationException("Excel column contains the same index.");
-            }
-            sortedFields.put(excelColumn.index() == -1 ? index : excelColumn.index(), new ColumnInfo(excelColumn, field));
-            index++;
-        }
-        return new ArrayList<>(sortedFields.values());
-    }
-
-    public static void main(String[] args) {
-        ExcelExporter m = new ExcelExporter();
-//        ExcelExporter.build(UserSalaryListVO.class).getColumns();
-    }
-    /**
-     * 閰嶇疆鏁版嵁鍗曞厓鏍�
-     */
-    private void configDataCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig, CellStyle style) {
-     //   CellStyle style = workbook.createCellStyle();
-        style.setAlignment(columnConfig.align());
-        style.setVerticalAlignment(VerticalAlignment.CENTER);
-        // 璁剧疆鑳屾櫙
-        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-        style.setFillForegroundColor(columnConfig.dataBackgroundColor().getIndex());
-        // 瀛椾綋
-        Font font = workbook.createFont();
-        font.setFontHeightInPoints(columnConfig.fontSize());
-        // 瀛椾綋棰滆壊
-        font.setColor(columnConfig.color().getIndex());
-        // 绮椾綋
-        font.setBold(columnConfig.bold());
-        // 鏂滀綋
-        font.setItalic(columnConfig.italic());
-        style.setFont(font);
-        // 杈规
-        configCellBorder(style);
-        cell.setCellStyle(style);
-    }
-
-    /**
-     * 閰嶇疆鍒楀ご鍗曞厓鏍�
-     */
-    private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig,CellStyle style) {
-       // CellStyle style = workbook.createCellStyle();
-        style.setAlignment(columnConfig.align());
-        style.setVerticalAlignment(VerticalAlignment.CENTER);
-        // 璁剧疆鑳屾櫙
-        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-        style.setFillForegroundColor(columnConfig.backgroundColor().getIndex());
-        // 瀛椾綋
-        Font font = workbook.createFont();
-        font.setFontHeightInPoints(columnConfig.fontSize());
         style.setFont(font);
         // 璁剧疆杈规
         configCellBorder(style);
@@ -471,289 +400,5 @@
 
         private Field field;
     }
-
-
-
-    public static <T> List<T> readExcel(String path, Class<T> cls, MultipartFile file) {
-
-        String fileName = file.getOriginalFilename();
-        if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
-            log.error("涓婁紶鏂囦欢鏍煎紡涓嶆纭�");
-        }
-        List<T> dataList = new ArrayList<>();
-        Workbook workbook = null;
-        try {
-            InputStream is = file.getInputStream();
-            if (fileName.endsWith(EXCEL2007)) {
-                workbook = new XSSFWorkbook(is);
-            }
-            if (fileName.endsWith(EXCEL2003)) {
-                workbook = new HSSFWorkbook(is);
-            }
-            if (workbook != null) {
-                //绫绘槧灏�  娉ㄨВ value-->bean columns
-                Map<String, List<Field>> classMap = new HashMap<>();
-                List<Field> fields = Stream.of(cls.getDeclaredFields()).collect(Collectors.toList());
-                fields.forEach(
-                        field -> {
-                            ExcelColumn annotation = field.getAnnotation(ExcelColumn.class);
-                            if (annotation != null) {
-                                String value = annotation.name();
-                                if (StringUtils.isBlank(value)) {
-                                    return;//return璧峰埌鐨勪綔鐢ㄥ拰continue鏄浉鍚岀殑 璇硶
-                                }
-                                if (!classMap.containsKey(value)) {
-                                    classMap.put(value, new ArrayList<>());
-                                }
-                                field.setAccessible(true);
-                                classMap.get(value).add(field);
-                            }
-                        }
-                );
-                //绱㈠紩-->columns
-                Map<Integer, List<Field>> reflectionMap = new HashMap<>(16);
-                //榛樿璇诲彇绗竴涓猻heet
-                Sheet sheet = workbook.getSheetAt(0);
-
-                boolean firstRow = true;
-                for (int i = sheet.getFirstRowNum(); i <= sheet.getLastRowNum(); i++) {
-                    Row row = sheet.getRow(i);
-                    //棣栬  鎻愬彇娉ㄨВ
-                    if (firstRow) {
-                        for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
-                            Cell cell = row.getCell(j);
-                            String cellValue = getCellValue(cell);
-                            if (classMap.containsKey(cellValue)) {
-                                reflectionMap.put(j, classMap.get(cellValue));
-                            }
-                        }
-                        firstRow = false;
-                    } else {
-                        //蹇界暐绌虹櫧琛�
-                        if (row == null) {
-                            continue;
-                        }
-                        try {
-                            T t = cls.newInstance();
-                            //鍒ゆ柇鏄惁涓虹┖鐧借
-                            boolean allBlank = true;
-                            for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
-                                if (reflectionMap.containsKey(j)) {
-                                    Cell cell = row.getCell(j);
-                                    String cellValue = getCellValue(cell);
-                                    if (StringUtils.isNotBlank(cellValue)) {
-                                        allBlank = false;
-                                    }
-                                    List<Field> fieldList = reflectionMap.get(j);
-                                    fieldList.forEach(
-                                            x -> {
-                                                try {
-                                                    handleField(t, cellValue, x);
-                                                } catch (Exception e) {
-                                                    log.error(String.format("reflect field:%s value:%s exception!", x.getName(), cellValue), e);
-                                                }
-                                            }
-                                    );
-                                }
-                            }
-                            if (!allBlank) {
-                                dataList.add(t);
-                            } else {
-                                log.warn(String.format("row:%s is blank ignore!", i));
-                            }
-                        } catch (Exception e) {
-                            log.error(String.format("parse row:%s exception!", i), e);
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            log.error(String.format("parse excel exception!"), e);
-        } finally {
-            if (workbook != null) {
-                try {
-                    workbook.close();
-                } catch (Exception e) {
-                    log.error(String.format("parse excel exception!"), e);
-                }
-            }
-        }
-        return dataList;
-    }
-
-    private static <T> void handleField(T t, String value, Field field) throws Exception {
-        Class<?> type = field.getType();
-        if (type == null || type == void.class || StringUtils.isBlank(value)) {
-            return;
-        }
-        if (type == Object.class) {
-            field.set(t, value);
-            //鏁板瓧绫诲瀷
-        } else if (type.getSuperclass() == null || type.getSuperclass() == Number.class) {
-            if (type == int.class || type == Integer.class) {
-                field.set(t, NumberUtils.toInt(value));
-            } else if (type == long.class || type == Long.class) {
-                field.set(t, NumberUtils.toLong(value));
-            } else if (type == byte.class || type == Byte.class) {
-                field.set(t, NumberUtils.toByte(value));
-            } else if (type == short.class || type == Short.class) {
-                field.set(t, NumberUtils.toShort(value));
-            } else if (type == double.class || type == Double.class) {
-                field.set(t, NumberUtils.toDouble(value));
-            } else if (type == float.class || type == Float.class) {
-                field.set(t, NumberUtils.toFloat(value));
-            } else if (type == char.class || type == Character.class) {
-                field.set(t, CharUtils.toChar(value));
-            } else if (type == boolean.class) {
-                field.set(t, BooleanUtils.toBoolean(value));
-            } else if (type == BigDecimal.class) {
-                field.set(t, new BigDecimal(value));
-            }
-        } else if (type == Boolean.class) {
-            field.set(t, BooleanUtils.toBoolean(value));
-        } else if (type == Date.class) {
-            field.set(t, value);
-        } else if (type == String.class) {
-            field.set(t, value);
-        } else {
-            Constructor<?> constructor = type.getConstructor(String.class);
-            field.set(t, constructor.newInstance(value));
-        }
-    }
-
-    private static String getCellValue(Cell cell) {
-        if (cell == null) {
-            return "";
-        }else{
-            return StringUtils.trimToEmpty(cell.getStringCellValue());
-        }
-       /* if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
-            if (HSSFDateUtil.isCellDateFormatted(cell)) {
-                return HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString();
-            } else {
-                return new BigDecimal(cell.getNumericCellValue()).toString();
-            }
-        } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
-            return StringUtils.trimToEmpty(cell.getStringCellValue());
-        } else if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) {
-            return StringUtils.trimToEmpty(cell.getCellFormula());
-        } else if (cell.getCellType() == Cell.CELL_TYPE_BLANK) {
-            return "";
-        } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
-            return String.valueOf(cell.getBooleanCellValue());
-        } else if (cell.getCellType() == Cell.CELL_TYPE_ERROR) {
-            return "ERROR";
-        } else {
-            return cell.toString().trim();
-        }*/
-    }
-
-  /*  public static <T> void writeExcel(HttpServletResponse response, List<T> dataList, Class<T> cls, String fileName) {
-        Field[] fields = cls.getDeclaredFields();
-        List<Field> fieldList = Arrays.stream(fields)
-                .filter(field -> {
-                    ExcelColumn annotation = field.getAnnotation(ExcelColumn.class);
-                    if (annotation != null && annotation.col() > 0) {
-                        field.setAccessible(true);
-                        return true;
-                    }
-                    return false;
-                }).sorted(Comparator.comparing(field -> {
-                    int col = 0;
-                    ExcelColumn annotation = field.getAnnotation(ExcelColumn.class);
-                    if (annotation != null) {
-                        col = annotation.col();
-                    }
-                    return col;
-                })).collect(Collectors.toList());
-
-        Workbook wb = new XSSFWorkbook();
-        Sheet sheet = wb.createSheet("Sheet1");
-        AtomicInteger ai = new AtomicInteger();
-        {
-            Row row = sheet.createRow(ai.getAndIncrement());
-            AtomicInteger aj = new AtomicInteger();
-            //鍐欏叆澶撮儴
-            fieldList.forEach(field -> {
-                ExcelColumn annotation = field.getAnnotation(ExcelColumn.class);
-                String columnName = "";
-                if (annotation != null) {
-                    columnName = annotation.value();
-                }
-                Cell cell = row.createCell(aj.getAndIncrement());
-                CellStyle cellStyle = wb.createCellStyle();
-                cellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
-                Font font = wb.createFont();
-                cellStyle.setFont(font);
-                cell.setCellStyle(cellStyle);
-                cell.setCellValue(columnName);
-            });
-        }
-        if (CollectionUtils.isNotEmpty(dataList)) {
-            dataList.forEach(t -> {
-                Row row1 = sheet.createRow(ai.getAndIncrement());
-                AtomicInteger aj = new AtomicInteger();
-                fieldList.forEach(field -> {
-                    Class<?> type = field.getType();
-                    Object value = "";
-                    try {
-                        value = field.get(t);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    Cell cell = row1.createCell(aj.getAndIncrement());
-                    if (value != null) {
-                        if (type == Date.class) {
-                            cell.setCellValue(value.toString());
-                        } else {
-                            cell.setCellValue(value.toString());
-                        }
-                        cell.setCellValue(value.toString());
-                    }
-                });
-            });
-        }
-        //鍐荤粨绐楁牸
-        wb.getSheet("Sheet1").createFreezePane(0, 1, 0, 1);
-        //娴忚鍣ㄤ笅杞絜xcel
-        buildExcelDocument(fileName, wb, response);
-    }*/
-
-    /**
-     * 娴忚鍣ㄤ笅杞絜xcel
-     *
-     * @param fileName
-     * @param wb
-     * @param response
-     */
-/*
-    private static void buildExcelDocument(String fileName, Workbook wb, HttpServletResponse response) {
-        try {
-            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
-            response.flushBuffer();
-            wb.write(response.getOutputStream());
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }*/
-
-    /**
-     * 鐢熸垚excel鏂囦欢
-     *
-     * @param path 鐢熸垚excel璺緞
-     * @param wb
-     */
- /*   private static void buildExcelFile(String path, Workbook wb) {
-        File file = new File(path);
-        if (file.exists()) {
-            file.delete();
-        }
-        try {
-            wb.write(new FileOutputStream(file));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }*/
 
 }

--
Gitblit v1.9.3