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