Browse Source

excel导出样式调整

gaodm 5 years ago
parent
commit
84834516b9

+ 9 - 0
src/main/java/com/diagbot/dto/ExportExcelCase.java

@@ -0,0 +1,9 @@
+package com.diagbot.dto;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:47
+ */
+public class ExportExcelCase {
+}

+ 1 - 1
src/main/java/com/diagbot/dto/ExportExcelMsgDTO.java

@@ -12,6 +12,6 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ExportExcelMsgDTO {
-    @Excel(name = "存在问题")
+    @Excel(name = "存在问题", isWrap = false)
     private String msg;
 }

+ 3 - 3
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -924,9 +924,9 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         }
     }
 
-    public void exportExcelFac(HttpServletResponse response){
+    public void exportExcelFac(HttpServletResponse response) {
         List<ExportExcelDTO> res = this.exportExcel();
-        response.setContentType("text/html;charset=UTF-8");
-        ExcelUtils.exportExcel(res, null, "导出sheet1", ExportExcelDTO.class, "测试user.xls", response);
+        String fileName = "病案质控";
+        ExcelUtils.exportExcelUser(res, null, "病案质控", ExportExcelDTO.class, fileName + ".xls", response);
     }
 }

+ 66 - 0
src/main/java/com/diagbot/service/impl/ExcelExportStylerUserImpl.java

@@ -0,0 +1,66 @@
+package com.diagbot.service.impl;
+
+import cn.afterturn.easypoi.excel.export.styler.AbstractExcelExportStyler;
+import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.Workbook;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/3 11:45
+ */
+public class ExcelExportStylerUserImpl extends AbstractExcelExportStyler implements IExcelExportStyler {
+    public ExcelExportStylerUserImpl(Workbook workbook) {
+        super.createStyles(workbook);
+    }
+
+    public CellStyle getTitleStyle(short color) {
+        CellStyle titleStyle = this.workbook.createCellStyle();
+        titleStyle.setAlignment(HorizontalAlignment.CENTER);
+        titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        titleStyle.setWrapText(true);
+        return titleStyle;
+    }
+
+    public CellStyle stringSeptailStyle(Workbook workbook, boolean isWarp) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        style.setDataFormat(STRING_FORMAT);
+        if (isWarp) {
+            style.setWrapText(true);
+        } else {
+            style.setAlignment(HorizontalAlignment.LEFT);
+        }
+
+        return style;
+    }
+
+    public CellStyle getHeaderStyle(short color) {
+        CellStyle titleStyle = this.workbook.createCellStyle();
+        Font font = this.workbook.createFont();
+        font.setFontHeightInPoints((short) 12);
+        titleStyle.setFont(font);
+        titleStyle.setAlignment(HorizontalAlignment.CENTER);
+        titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        return titleStyle;
+    }
+
+    public CellStyle stringNoneStyle(Workbook workbook, boolean isWarp) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        style.setDataFormat(STRING_FORMAT);
+        if (isWarp) {
+            style.setWrapText(true);
+        } else {
+            style.setAlignment(HorizontalAlignment.LEFT);
+        }
+
+        return style;
+    }
+}

+ 13 - 0
src/main/java/com/diagbot/util/ExcelUtils.java

@@ -6,7 +6,12 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import cn.afterturn.easypoi.excel.entity.ImportParams;
 import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.ExcelExportStylerUserImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -31,6 +36,13 @@ public class ExcelUtils {
         defaultExport(list, pojoClass, fileName, response, exportParams);
     }
 
+    public static void exportExcelUser(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
+                                       HttpServletResponse response) {
+        ExportParams exportParams = new ExportParams(title, sheetName);
+        exportParams.setStyle(ExcelExportStylerUserImpl.class);
+        defaultExport(list, pojoClass, fileName, response, exportParams);
+    }
+
     public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
                                    HttpServletResponse response) {
         defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
@@ -57,6 +69,7 @@ public class ExcelUtils {
             workbook.write(response.getOutputStream());
         } catch (IOException e) {
             // throw new NormalException(e.getMessage());
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "导出Excel异常");
         }
     }
 

+ 5 - 7
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -5,7 +5,6 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.dto.AnalyzeRunDTO;
 import com.diagbot.dto.BehospitalInfoDTO;
-import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.BehospitalInfoFacade;
 import com.diagbot.facade.QcresultInfoFacade;
@@ -28,7 +27,6 @@ import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -112,7 +110,7 @@ public class BehospitalInfoController {
     @PostMapping("/analyze_api")
     @SysLogger("analyze_api")
     @Transactional
-//    @ApiIgnore
+    //    @ApiIgnore
     public RespDTO<Map<String, Object>> analyzeApi(@RequestBody AnalyzeApiVO analyzeApiVO) {
         return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeApiVO));
     }
@@ -123,7 +121,7 @@ public class BehospitalInfoController {
     @PostMapping("/addCase")
     @SysLogger("addCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> addCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> addCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(1);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -134,7 +132,7 @@ public class BehospitalInfoController {
     @PostMapping("/delCase")
     @SysLogger("delCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(2);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -144,7 +142,7 @@ public class BehospitalInfoController {
     @PostMapping("/updCase")
     @SysLogger("updCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> updCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> updCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(3);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -157,7 +155,7 @@ public class BehospitalInfoController {
                     "filterFlag: 筛选病历数据:0:未评分的病历,【推荐使用】;1:全部病历,【谨慎使用】")
     @PostMapping("/execule")
     @SysLogger("execule")
-    public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO){
+    public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO) {
         behospitalInfoFacade.execute(taskVO, "");
         return RespDTO.onSuc(true);
     }