From 5fbfb845497156b972153ab58a1f2ce91b5340e9 Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期一, 13 二月 2023 11:54:30 +0800
Subject: [PATCH] 内阻数据导出

---
 src/main/java/com/whyc/service/ExcelExportService.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 106 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java
index 448e2cd..b41eb83 100644
--- a/src/main/java/com/whyc/service/ExcelExportService.java
+++ b/src/main/java/com/whyc/service/ExcelExportService.java
@@ -4,6 +4,8 @@
 import com.whyc.fbo.FboDataHeadStart;
 import com.whyc.fbo.FboDataHeadStop;
 import com.whyc.fbo.FboDataInf;
+import com.whyc.res.RESData;
+import com.whyc.res.RESDataInfo;
 import com.whyc.util.ServletUtils;
 import org.apache.poi.ss.usermodel.ClientAnchor;
 import org.apache.poi.xssf.usermodel.*;
@@ -24,6 +26,9 @@
 public class ExcelExportService {
     @Autowired
     FboDataInfService fboService;
+
+    @Autowired
+    private RESDataInfoService resService;
 
     //瀵煎嚭fbx
     public void exportFbx(HttpServletRequest req, HttpServletResponse resp){
@@ -224,6 +229,107 @@
     }
 
 
+    //瀵煎嚭bres
+    public void exportBres(HttpServletRequest req, HttpServletResponse resp){
+        String volEchart = req.getParameter("vol_echart");			//鍗曚綋鐢靛帇鎶樼嚎鍥�
+        String resEchart = req.getParameter("res_echart");			//鍗曚綋鍐呴樆鎶樼嚎鍥�
+        String tmpEchart = req.getParameter("tmp_echart");			//鍗曚綋娓╁害鎶樼嚎鍥�
+
+        String filePath = req.getParameter("filePath");
+        //鍥剧墖base64鍚庣殑鏁版嵁
+        List<byte[]> bytes = new ArrayList<>();
+        try {
+            if (ServletUtils.isNotNull(volEchart)) {
+                String[] url = volEchart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }
+            if (ServletUtils.isNotNull(resEchart)) {
+                String[] url = resEchart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }
+            if (ServletUtils.isNotNull(tmpEchart)) {
+                String[] url = tmpEchart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        //褰撳墠鏃ユ湡
+        String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+        String excelName = "BRES-"+nowFormat;
+        XSSFWorkbook wb = new XSSFWorkbook();
+        XSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃");
+        //鍥剧墖鍏冪礌
+        XSSFDrawing patriarch = sheet.createDrawingPatriarch();
+
+        int rowNumSheet = 0;
+        //鎻掑叆鍥剧墖
+        int picNum = 0;
+        String[] picName =new String[]{"鍗曚綋鐢靛帇鎶樼嚎鍥�","鍗曚綋鍐呴樆鎶樼嚎鍥�","鍗曚綋娓╁害鎶樼嚎鍥�"};
+        if (picName.length==bytes.size()){
+            for(int i=0;i<picName.length;i++){
+                sheet.createRow(rowNumSheet-1);
+                sheet.getRow(rowNumSheet-1).createCell(0).setCellValue(picName[i]);
+                //rowNum++;
+                XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 512, 255,(short) 0, rowNumSheet, (short) 10, rowNumSheet+27);
+                anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
+                patriarch.createPicture(anchor,wb.addPicture(bytes.get(picNum),XSSFWorkbook.PICTURE_TYPE_PNG)).resize(1);
+                picNum ++;
+                rowNumSheet+=27;
+            }
+        }
+        //鏁版嵁
+        RESDataInfo resDataInfo =resService.readFileData(filePath);
+        //浠庢枃浠朵腑鑾峰彇鏁版嵁
+        List<RESData> list = resDataInfo.resDatas;
+        XSSFSheet sheet1 = wb.createSheet("鍐呴樆鏁版嵁");
+        //鏂板缓琛�
+
+        //鎶ご
+        int rowNum = 0;
+        sheet1.createRow(rowNum).createCell(0).setCellValue("娴嬭瘯鏁版嵁(鍐呴樆)");
+        rowNum++;
+        //灞炴�ф爮
+        String[] rowName =new String[]{"娴嬭瘯鏃堕棿"};
+        XSSFRow row = sheet1.createRow(rowNum);
+        for (int i=0;i<rowName.length;i++){
+            row.createCell(i).setCellValue(rowName[i]);
+        }
+        int battNum=list.get(0).getBattSum();//鍗曚綋涓暟
+        for(int i=0;i<battNum;i++){
+            row.createCell(rowName.length+i).setCellValue("#"+Integer.valueOf(i+1));
+        }
+        rowNum++;
+        //鏁版嵁鏍�
+        for (int i = 0; i < list.size(); i++) {
+            sheet1.createRow(rowNum);  //鍒涘缓琛�
+            RESData resData=list.get(i);
+            float[] monomerRes=resData.getMonomerRes();
+            sheet1.getRow(rowNum).createCell(0).setCellValue(resData.getData_Time());
+            for (int k = 0;k<battNum;k++){
+                sheet1.getRow(rowNum).createCell(k+1).setCellValue(monomerRes[i]);
+            }
+            rowNum++;
+        }
+
+        rowNum++;
+
+        try {
+            // 杞爜闃叉涔辩爜
+            resp.addHeader("Content-Disposition", "attachment;filename="
+                    + new String(excelName.getBytes("UTF-8"), "ISO8859-1")
+                    + ".xlsx");
+            OutputStream out = resp.getOutputStream();
+            wb.write(out);
+            out.close();
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+
     /**
      * 灏嗘棩鏈熸牸寮忚浆鎹㈡垚鎸囧畾鐨勫瓧绗︿覆鏍煎紡
      * @param date	鏃ユ湡

--
Gitblit v1.9.1