From a56c965e004eb45b2a66b5989615c06b7b164406 Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期三, 17 五月 2023 15:34:38 +0800 Subject: [PATCH] 文件解析充电数据导出 --- src/main/java/com/whyc/service/ExcelExportService.java | 110 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 80 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java index c405045..32411ca 100644 --- a/src/main/java/com/whyc/service/ExcelExportService.java +++ b/src/main/java/com/whyc/service/ExcelExportService.java @@ -31,7 +31,6 @@ //瀵煎嚭鏀剧數鏁版嵁bcp public void exportBcp(HttpServletRequest req, HttpServletResponse resp) { - String curr_echart = req.getParameter("curr_echart"); //鐢垫睜鐢垫祦鎶樼嚎鍥� String groupVol_echart = req.getParameter("groupVol_echart");//缁勭鐢靛帇鎶樼嚎鍥� String cap_echart = req.getParameter("cap_echart"); //娴嬭瘯瀹归噺鎶樼嚎鍥� @@ -91,7 +90,6 @@ sheet.createRow(rowNumSheet); sheet.getRow(rowNumSheet).createCell(0).setCellValue("娴嬭瘯寮�濮嬫椂闂达細" + formartDate(capState.StartDT.time,"yyyy-MM-dd HH:mm:ss")); sheet.getRow(rowNumSheet).createCell(1).setCellValue("娴嬭瘯鏃堕暱锛�" + capState.Test_Time.hour+":"+capState.Test_Time.minute+":"+capState.Test_Time.second); - rowNumSheet += 4; //鎻掑叆鍥剧墖 @@ -186,14 +184,14 @@ return picNameBcp; }else if(fileType.equals("chr")){ String[] picNameChr = new String[]{ - "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�" + "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","娓╁害鎶樼嚎鍥�" }; return picNameChr; }else if(fileType.equals("alm")){ - String[] picNameChr = new String[]{ - "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�" + String[] picNameAlm = new String[]{ + "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","娓╁害鎶樼嚎鍥�" }; - return picNameChr; + return picNameAlm; }else{ return null; } @@ -201,41 +199,69 @@ //瀵煎嚭鍏呯數鏁版嵁chr - /*public void exportChr(HttpServletRequest req, HttpServletResponse resp){ - String volEchart = req.getParameter("vol_echart"); //鍗曚綋鐢靛帇鎶樼嚎鍥� - String resEchart = req.getParameter("res_echart"); //鍗曚綋鍐呴樆鎶樼嚎鍥� - String tmpEchart = req.getParameter("tmp_echart"); //鍗曚綋娓╁害鎶樼嚎鍥� - + public void exportChr(HttpServletRequest req, HttpServletResponse resp){ + String curr_echart = req.getParameter("curr_echart"); //鐢垫睜鐢垫祦鎶樼嚎鍥� + String groupVol_echart = req.getParameter("groupVol_echart");//缁勭鐢靛帇鎶樼嚎鍥� + String cap_echart = req.getParameter("cap_echart"); //娴嬭瘯瀹归噺鎶樼嚎鍥� + String temp_echart = req.getParameter("temp_echart");//娓╁害鎶樼嚎鍥� String filePath = req.getParameter("filePath"); + Fbs5100ChargeData data=chargeDataService.readFileData(filePath); //鍥剧墖base64鍚庣殑鏁版嵁 List<byte[]> bytes = new ArrayList<>(); try { - if (ServletUtils.isNotNull(volEchart)) { - String[] url = volEchart.split(","); + if (ServletUtils.isNotNull(curr_echart)) { + String[] url = curr_echart.split(","); bytes.add(new BASE64Decoder().decodeBuffer(url[1])); } - if (ServletUtils.isNotNull(resEchart)) { - String[] url = resEchart.split(","); + if (ServletUtils.isNotNull(groupVol_echart)) { + String[] url = groupVol_echart.split(","); bytes.add(new BASE64Decoder().decodeBuffer(url[1])); } - if (ServletUtils.isNotNull(tmpEchart)) { - String[] url = tmpEchart.split(","); + if (ServletUtils.isNotNull(cap_echart)) { + String[] url = cap_echart.split(","); + bytes.add(new BASE64Decoder().decodeBuffer(url[1])); + } + if (ServletUtils.isNotNull(temp_echart)) { + String[] url = temp_echart.split(","); bytes.add(new BASE64Decoder().decodeBuffer(url[1])); } }catch (Exception e){ e.printStackTrace(); } + //鏁版嵁 + Fbs5100BattParam battParam =data.battParam; + Fbs5100ChargeParam chargeParam =data.chargeParam; + Fbs5100ChargeState chargeState =data.chargeState; + //浠庢枃浠朵腑鑾峰彇鏁版嵁 + List<Fbs5100FbsData> list = data.fbsDatas; //褰撳墠鏃ユ湡 String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - String excelName = "BRES-"+nowFormat; + String excelName = "chr-"+nowFormat; XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃"); + int rowNumSheet = 0; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鐢垫睜缁勬暟锛�" + battParam.BattGroupCount); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("姣忕粍鍗曚綋鏁帮細" + battParam.EachGroupBattCount); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鏍囩О鍗曚綋鐢靛帇锛�" + battParam.MonomerVol + "V"); + + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("娴厖鐢垫祦闃堝�硷細" + battParam.FloatChargeVol + "A"); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("鍦ㄧ嚎鐢靛帇浣庨槇鍊硷細" + battParam.OnlineVolLow + "A"); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鍧囧厖鐢靛帇锛�" + battParam.JunChargeVol + "A"); + + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("娴嬭瘯寮�濮嬫椂闂达細" + formartDate(chargeState.StartDT.time,"yyyy-MM-dd HH:mm:ss")); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("娴嬭瘯鏃堕暱锛�" + chargeState.Test_Time.hour+":"+chargeState.Test_Time.minute+":"+chargeState.Test_Time.second); + + rowNumSheet += 4; //鍥剧墖鍏冪礌 XSSFDrawing patriarch = sheet.createDrawingPatriarch(); - int rowNumSheet = 1; //鎻掑叆鍥剧墖 int picNum = 0; - String[] picName =new String[]{"鍗曚綋鐢靛帇鎶樼嚎鍥�","鍗曚綋鍐呴樆鎶樼嚎鍥�","鍗曚綋娓╁害鎶樼嚎鍥�"}; + String[] picName =getPicName("chr"); if (picName.length==bytes.size()){ for(int i=0;i<picName.length;i++){ sheet.createRow(rowNumSheet-1); @@ -248,15 +274,39 @@ rowNumSheet+=30; } } - //鏁版嵁 - RESDataInfo resDataInfo =resService.readFileData(filePath); - //浠庢枃浠朵腑鑾峰彇鏁版嵁 - List<RESData> list = resDataInfo.resDatas; - int battNum=list.get(0).getBattSum();//鍗曚綋涓暟 - //鍒涘缓涓嶅悓sheet - createBresSheet(wb,battNum,list,1);//鍒涘缓鍐呴樆鏁版嵁 - createBresSheet(wb,battNum,list,2);//鍒涘缓娓╁害鏁版嵁 - createBresSheet(wb,battNum,list,3);//鍒涘缓鐢靛帇鏁版嵁 + XSSFSheet sheet1 = wb.createSheet("鏁版嵁"); + //鎶ご + int rowNum = 0; + sheet1.createRow(rowNum).createCell(0).setCellValue("娴嬭瘯鏁版嵁"); + rowNum++; + //灞炴�ф爮 + String[] rowName = getRowName("chr"); + XSSFRow row = sheet1.createRow(rowNum); + for (int i = 0; i < rowName.length; i++) { + row.createCell(i).setCellValue(rowName[i]); + } + for (int i = 0; i < battParam.BattGroupCount; i++) { + row.createCell(rowName.length + i*2).setCellValue("#" + Integer.valueOf(i + 1)+"鍦ㄧ嚎鐢靛帇"); + row.createCell(rowName.length + i*2+1).setCellValue("#" + Integer.valueOf(i + 1)+"缁勭鐢靛帇"); + } + rowNum++; + //鏁版嵁鏍� + for (int i = 0; i < list.size(); i++) { + sheet1.createRow(rowNum); //鍒涘缓琛� + Fbs5100FbsData fbsData = list.get(i); + sheet1.getRow(rowNum).createCell(0).setCellValue(fbsData.testTime.hour+":"+fbsData.testTime.minute+":"+fbsData.testTime.second); + sheet1.getRow(rowNum).createCell(1).setCellValue(String.valueOf(fbsData.muxianvol_discharge)); + sheet1.getRow(rowNum).createCell(2).setCellValue(String.valueOf(fbsData.muxianvol_charge)); + sheet1.getRow(rowNum).createCell(3).setCellValue(String.valueOf(fbsData.boostDCDC_OutVol)); + sheet1.getRow(rowNum).createCell(4).setCellValue(String.valueOf(fbsData.muxianvol)); + for (int j = 0; j < battParam.BattGroupCount; j++) { + sheet1.getRow(rowNum).createCell(rowName.length + j*2).setCellValue(String.valueOf(fbsData.onlinevol[j])); + sheet1.getRow(rowNum).createCell(rowName.length + j*2+1).setCellValue(String.valueOf(fbsData.groupvol[j])); + } + rowNum++; + } + rowNum++; + try { // 杞爜闃叉涔辩爜 resp.addHeader("Content-Disposition", "attachment;filename=" @@ -272,7 +322,7 @@ } } //bres涓唴闃绘暟鎹�/娓╁害鏁版嵁/鍗曚綋鐢靛帇鏁版嵁鏀惧湪涓嶅悓鐨剆heet涓� - public void createBresSheet(XSSFWorkbook wb,int battNum,List<RESData> list,int type){ + /*public void createBresSheet(XSSFWorkbook wb,int battNum,List<RESData> list,int type){ String sheetName=""; String testName=""; switch (type){ -- Gitblit v1.9.1