From 5e66e66dc2561c86893d483cab57128ebbd9bc5b Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 09 十月 2023 13:34:22 +0800
Subject: [PATCH] 集成mqtt

---
 server/services/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java |  507 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 500 insertions(+), 7 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 fc2bad2..cfeb782 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,24 +4,40 @@
 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/03/15 09:54
+ * @date 2022/04/18 18:12
  */
 @Data
 public class ExcelExporter<T> {
@@ -31,6 +47,13 @@
     private Class<T> modelClass;
 
     private ExcelExporter(){}
+
+
+
+    private final static Logger log = LoggerFactory.getLogger(ExcelExporter.class);
+
+    private final static String EXCEL2003 = "xls";
+    private final static String EXCEL2007 = "xlsx";
 
     /**
      * 鏋勯�犲櫒
@@ -52,6 +75,8 @@
         SXSSFWorkbook sxssfWorkbook;
         try {
             sxssfWorkbook = new SXSSFWorkbook();
+
+            CellStyle style = sxssfWorkbook.createCellStyle();
             Sheet sheet = sxssfWorkbook.createSheet(sheetName);
             // 鍒涘缓鍒楀ご
             sheet.createFreezePane(0, 1);
@@ -68,7 +93,7 @@
                     sheet.setColumnWidth(columnIndex, column.columnConfig.width() * 2 * 256);
                 }
                 // 璁剧疆鍒楀ご鍗曞厓鏍�
-                configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
+                configHeaderCell(sxssfWorkbook, cell, column.columnConfig,style);
             }
             // 鍒涘缓鏁版嵁璁板綍
             for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
@@ -78,7 +103,7 @@
                     Cell cell = row.createCell(columnIndex);
                     cell.setCellValue(getCellData(column, data.get(rowIndex)));
                     // 璁剧疆鏁版嵁鍗曞厓鏍�
-                    configDataCell(sxssfWorkbook, cell, column.columnConfig);
+                    configDataCell(sxssfWorkbook, cell, column.columnConfig,style);
                 }
             }
             sxssfWorkbook.write(os);
@@ -125,7 +150,187 @@
     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 鏁版嵁
+     * @param fileName Excel鏂囦欢鍚�
+     * @param sheetName Sheet鍚嶇О
+     * @param response HttpServletResponse瀵硅薄
+     */
+    public void exportWithFirstAndEnd (List<T> data, String fileName, String sheetName, String first,String end ,HttpServletResponse response) {
+        try {
+            String encodeFileName = URLEncoder.encode(fileName, Charset.forName("UTF-8").toString()) + ".xlsx";
+            response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
+            response.setContentType("application/octet-stream");
+            response.setHeader("eva-opera-type", "download");
+            response.setHeader("eva-download-filename", encodeFileName);
+            this.exportWithFirstAndEnd(data, sheetName,first,end, response.getOutputStream());
+        } catch (IOException e) {
+            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();
+                }
+            }
+        }
+    }
+    /**
+     * 閰嶇疆鏁版嵁鍗曞厓鏍�
+     */
+    private void configDataCell (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.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);
+        style.setWrapText(true);
+        cell.setCellStyle(style);
+    }
+    /**
+     * 閰嶇疆鍒楀ご鍗曞厓鏍�
+     */
+    private void configFirstCell (SXSSFWorkbook workbook, Cell cell ) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 璁剧疆鑳屾櫙
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
+        // 瀛椾綋
+        Font font = workbook.createFont();
+        font.setFontHeightInPoints((short)24);
+        font.setBold(true);
+        style.setFont(font);
+        // 璁剧疆杈规
+        configCellBorder(style);
+        cell.setCellStyle(style);
+    }
+    /**
+     * 閰嶇疆鍒楀ご鍗曞厓鏍�
+     */
+    private void configEndCell (SXSSFWorkbook workbook, Cell cell ) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.RIGHT);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 璁剧疆鑳屾櫙
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+        // 瀛椾綋
+        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);
+    }
     /**
      * 鑾峰彇鍒楅泦鍚�
      */
@@ -147,11 +352,15 @@
         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 = workbook.createCellStyle();
+    private void configDataCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig, CellStyle style) {
+     //   CellStyle style = workbook.createCellStyle();
         style.setAlignment(columnConfig.align());
         style.setVerticalAlignment(VerticalAlignment.CENTER);
         // 璁剧疆鑳屾櫙
@@ -175,8 +384,8 @@
     /**
      * 閰嶇疆鍒楀ご鍗曞厓鏍�
      */
-    private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig) {
-        CellStyle style = workbook.createCellStyle();
+    private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig,CellStyle style) {
+       // CellStyle style = workbook.createCellStyle();
         style.setAlignment(columnConfig.align());
         style.setVerticalAlignment(VerticalAlignment.CENTER);
         // 璁剧疆鑳屾櫙
@@ -263,4 +472,288 @@
         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