From cd7f83d5b2c9a36ad571e016d743ab61824dbfe5 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期二, 10 六月 2025 16:44:50 +0800 Subject: [PATCH] 测试调整格式 --- src/main/java/com/whyc/service/ExcelService.java | 385 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 283 insertions(+), 102 deletions(-) diff --git a/src/main/java/com/whyc/service/ExcelService.java b/src/main/java/com/whyc/service/ExcelService.java index 4927078..dac33f0 100644 --- a/src/main/java/com/whyc/service/ExcelService.java +++ b/src/main/java/com/whyc/service/ExcelService.java @@ -572,30 +572,20 @@ CellRangeAddress region = new CellRangeAddress(0, 0, 0, columnCount-1); sheet.addMergedRegion(region); - //TODO 绗簩琛岀殑鍚堝苟鍒楁槸鏍规嵁鍙樺姩鐨�,鍚庣画璋冩暣 - CellRangeAddress region21 = new CellRangeAddress(1, 1, 0, 1); - sheet.addMergedRegion(region21); - - CellRangeAddress region22 = new CellRangeAddress(1, 1, 3, 9); - sheet.addMergedRegion(region22); - - CellRangeAddress region23 = new CellRangeAddress(1, 1, 10, 13); - sheet.addMergedRegion(region23); - - CellRangeAddress region24 = new CellRangeAddress(1, 1, 14, 17); - sheet.addMergedRegion(region24); - - CellRangeAddress region25 = new CellRangeAddress(1, 1, 18, 24); - sheet.addMergedRegion(region25); - //绗笁琛�,绗簲琛�,绗叚琛岀殑鍚堝苟鍒�,鍓嶄袱涓崟鍏冩ā鍧楁槸鍥哄畾鐨�,鍏朵腑1涓悎骞跺崟鍏� - CellRangeAddress region31 = new CellRangeAddress(2, 2, 2, 3); - CellRangeAddress region51 = new CellRangeAddress(4, 4, 2, 3); - CellRangeAddress region61 = new CellRangeAddress(5, 5, 2, 3); - sheet.addMergedRegion(region31); - sheet.addMergedRegion(region51); - sheet.addMergedRegion(region61); + CellRangeAddress region31 = new CellRangeAddress(2, 2, 1, 2); + CellRangeAddress region32 = new CellRangeAddress(2, 2, 3, 4); + CellRangeAddress region51 = new CellRangeAddress(4, 4, 1, 2); + CellRangeAddress region52 = new CellRangeAddress(4, 4, 3, 4); + CellRangeAddress region61 = new CellRangeAddress(5, 5, 1, 2); + CellRangeAddress region62 = new CellRangeAddress(5, 5, 3, 4); + sheet.addMergedRegion(region31); + sheet.addMergedRegion(region32); + sheet.addMergedRegion(region51); + sheet.addMergedRegion(region52); + sheet.addMergedRegion(region61); + sheet.addMergedRegion(region62); // 鍒涘缓灞呬腑鏍峰紡 CellStyle style = workbook.createCellStyle(); @@ -605,80 +595,94 @@ cellRow1.setCellStyle(style); //绗簩琛屾槸鏀剧數鍩烘湰淇℃伅 + //鍥犱负鏄姩鎬佺殑,娌″姙娉曞儚妯℃澘涓�鏍�. + //钃勭數姹犵粍鍙�:绗竴鍒� + //宸ヤ綔绁ㄤ俊鎭�:浜屼笁鍒� + //鏀剧數鏃ユ湡:绗洓鍒楄捣姝�-鏀剧數缁撴潫闈欑疆0.5h + //鏀剧數鐢垫祦,鏃堕暱,瀹归噺:鏀剧數缁撴潫鍚庨潤缃�0.5h璧峰埌鍏呮弧鐢� + //鐜娓╂箍搴�:澶囨敞 XSSFRow row1 = sheet.createRow(1); XSSFCell cell1Row2 = row1.createCell(0); cell1Row2.setCellValue("钃勭數姹犵粍鍙�:" + battInfo.getBattGroupName()); - XSSFCell cell2Row2 = row1.createCell(2); - cell2Row2.setCellValue(""); - XSSFCell cell3Row2 = row1.createCell(3); - cell3Row2.setCellValue("宸ヤ綔绁ㄥ彿锛�2273925\n" + + XSSFCell cell2Row2 = row1.createCell(1); + cell2Row2.setCellValue("宸ヤ綔绁ㄥ彿锛�2273925\n" + "宸ヤ綔璐熻矗浜猴細椹簯鐕昞n" + "宸ヤ綔鎴愬憳锛氬懆绱犳枃銆佹潕蹇楁爣銆佺帇鏈堢伩绛�"); - XSSFCell cell4Row2 = row1.createCell(10); - cell4Row2.setCellValue("鏀剧數鏃ユ湡锛�2021.10.30\n" + + XSSFCell cell3Row2 = row1.createCell(3); + cell3Row2.setCellValue("鏀剧數鏃ユ湡锛�2021.10.30\n" + "鏀剧數寮�濮嬫椂闂达細10:00\n" + "鏀剧數缁撴潫鏃堕棿锛�19:47"); - XSSFCell cell5Row2 = row1.createCell(14); - cell5Row2.setCellValue("鏀剧數鐢垫祦锛圓锛夛細35\n" + + XSSFCell cell4Row2 = row1.createCell(5); + cell4Row2.setCellValue("鏀剧數鐢垫祦锛圓锛夛細35\n" + "鏀剧數鏃堕暱锛堟椂.鍒嗭級锛�600min\n" + "鏀剧數瀹归噺锛圓h锛夛細300"); - XSSFCell cell6Row2 = row1.createCell(18); - cell6Row2.setCellValue("鐜娓╁害锛堚剝锛夛細24.5\n" + + XSSFCell cell5Row2 = row1.createCell(columnCount-1); + cell5Row2.setCellValue("鐜娓╁害锛堚剝锛夛細24.5\n" + "鐜婀垮害锛�%锛夛細46.7"); - //绗簩琛岃缃姞绮� - //setRowStyle(sheet.getRow(1),cellStyleFontBold); + + //浜岃鐨勫悎骞跺垪鏄牴鎹彉鍔ㄧ殑 + row1.setHeightInPoints(57); + sheet.getRow(0).setHeightInPoints(42); + CellRangeAddress region22 = new CellRangeAddress(1, 1, 1, 2); + sheet.addMergedRegion(region22); + + CellRangeAddress region23 = new CellRangeAddress(1, 1, 3, 4); + sheet.addMergedRegion(region23); + + CellRangeAddress region24 = new CellRangeAddress(1, 1, 5, columnCount-2); + sheet.addMergedRegion(region24); //绗笁琛屾槸鐢垫睜鍙峰拰鐢靛帇绛夌浉鍏虫姮澶� //绗洓琛屾槸鐢靛帇鍒楀拰娓╁害鍒楁爣璇� XSSFRow row2 = sheet.createRow(2); XSSFRow row3 = sheet.createRow(3); - XSSFRow row4 = sheet.createRow(4); - XSSFRow row5 = sheet.createRow(5); row2.createCell(0).setCellValue("钃勭數姹犲彿锛�#锛�"); row2.createCell(1).setCellValue("钃勭數姹犳诞鍏呯數鍘嬪�硷紙V锛�"); - row2.createCell(2).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�"); + row2.createCell(3).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�"); row3.createCell(0).setCellValue("椤圭洰"); row3.createCell(1).setCellValue("-1锛堢數鍘嬶級"); - row3.createCell(2).setCellValue("0锛堢數鍘嬶級"); - row3.createCell(3).setCellValue("0锛堟俯搴︼級"); + row3.createCell(2).setCellValue("-1锛堟俯搴︼級"); + row3.createCell(3).setCellValue("0锛堢數鍘嬶級"); + row3.createCell(4).setCellValue("0锛堟俯搴︼級"); //鏀剧數鐗瑰畾鐢靛帇鍊� - int columnIndex = 3; + int columnIndex = 5; if(dischargeColumnCount > 0){ - row2.createCell(5).setCellValue("鏀剧數0.5h钃勭數姹犵數鍘嬪�硷紙V锛�"); - CellRangeAddress region33 = new CellRangeAddress(2, 2, 4, 5); - CellRangeAddress region53 = new CellRangeAddress(4, 4, 4, 5); - CellRangeAddress region63 = new CellRangeAddress(5, 5, 4, 5); + //row2.createCell(5).setCellValue("鏀剧數0.5h钃勭數姹犵數鍘嬪�硷紙V锛�"); + row2.createCell(columnCount).setCellValue("鏀剧數0.5h钃勭數姹犵數鍘嬪�硷紙V锛�"); + CellRangeAddress region33 = new CellRangeAddress(2, 2, 5, 6); + CellRangeAddress region53 = new CellRangeAddress(4, 4, 5, 6); + CellRangeAddress region63 = new CellRangeAddress(5, 5, 5, 6); sheet.addMergedRegion(region33); sheet.addMergedRegion(region53); sheet.addMergedRegion(region63); - row3.createCell(4).setCellValue("0.5锛堢數鍘嬶級"); - row3.createCell(5).setCellValue("0.5锛堟俯搴︼級"); + row3.createCell(5).setCellValue("0.5锛堢數鍘嬶級"); + row3.createCell(6).setCellValue("0.5锛堟俯搴︼級"); columnIndex+=2; if(dischargeColumnCount > 2){ //鍚堝苟鍗曞厓鏍间簡,鎵�浠ョ储寮�+2 - row2.createCell(7).setCellValue("鏀剧數1h钃勭數姹犵數鍘嬪�硷紙V锛�"); - CellRangeAddress region34 = new CellRangeAddress(2, 2, 6, 7); - CellRangeAddress region54 = new CellRangeAddress(4, 2, 6, 7); - CellRangeAddress region64 = new CellRangeAddress(5, 2, 6, 7); + //row2.createCell(7).setCellValue("鏀剧數1h钃勭數姹犵數鍘嬪�硷紙V锛�"); + row2.createCell(columnCount).setCellValue("鏀剧數1h钃勭數姹犵數鍘嬪�硷紙V锛�"); + CellRangeAddress region34 = new CellRangeAddress(2, 2, 7, 8); + CellRangeAddress region54 = new CellRangeAddress(4, 4, 7, 8); + CellRangeAddress region64 = new CellRangeAddress(5, 5, 7, 8); sheet.addMergedRegion(region34); sheet.addMergedRegion(region54); sheet.addMergedRegion(region64); - row3.createCell(6).setCellValue("1锛堢數鍘嬶級"); - row3.createCell(7).setCellValue("1锛堟俯搴︼級"); + row3.createCell(7).setCellValue("1锛堢數鍘嬶級"); + row3.createCell(8).setCellValue("1锛堟俯搴︼級"); columnIndex+=2; if(dischargeColumnCount > 4){ - columnIndex++; //鏀剧數nh钃勭數姹犵數鍘嬪�硷紙V锛�,n浠�2寮�濮� for(int i = 4;i < dischargeColumnCount;i++){ row2.createCell(i+5).setCellValue("鏀剧數" + (i-2) + "h钃勭數姹犵數鍘嬪�硷紙V锛�"); @@ -691,28 +695,27 @@ } //鍏呯數鐗瑰畾鐢靛帇鍊� - row2.createCell(++columnIndex).setCellValue("鏀剧數缁撴潫0.5h鍚庤搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�"); + row2.createCell(columnIndex).setCellValue("鏀剧數缁撴潫0.5h鍚庤搫鐢垫睜寮�璺數鍘嬪�硷紙V锛�"); row3.createCell(columnIndex).setCellValue("10.5"); + columnIndex++; if(chargeColumnCount > 0){ - columnIndex++; row2.createCell(columnIndex).setCellValue("鍏呯數0.5h"); - + columnIndex++; if(chargeColumnCount > 1){ //鍏呯數nh,n浠�1寮�濮� for(int i = 1;i < chargeColumnCount;i++){ - columnIndex++; row2.createCell(columnIndex).setCellValue("鍏呯數" + (i) + "h钃勭數姹犵數鍘嬪�硷紙V锛�"); row3.createCell(columnIndex);//濉厖鍗曞厓鏍肩殑浣滅敤 + columnIndex++; } } } - row2.createCell(++columnIndex).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�"); + row2.createCell(columnIndex).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�"); row3.createCell(columnIndex).setCellValue("11"); - row2.createCell(++columnIndex).setCellValue("澶囨敞"); + columnIndex++; + row2.createCell(columnIndex).setCellValue("澶囨敞"); row3.createCell(columnIndex);//濉厖鍗曞厓鏍肩殑浣滅敤 - - //浠巖owIndex=4寮�濮� int rowIndex = 4; @@ -837,21 +840,20 @@ //rowTemp.createCell(4).setCellValue("鏀剧數鍓嶈搫鐢垫睜寮�璺俯搴﹀��:"+(j+1)+"#"); if(j == 0){ rowTemp.createCell(1).setCellValue(fcVolList.get(j).getGroupVol()); - rowTemp.createCell(2).setCellValue(preVolList.get(j).getGroupVol()); - rowTemp.createCell(3); + rowTemp.createCell(3).setCellValue(preVolList.get(j).getGroupVol()); }else if (j == 1){ rowTemp.createCell(1).setCellValue(fcVolList.get(j).getGroupCurr()); - rowTemp.createCell(2).setCellValue(preVolList.get(j).getGroupCurr()); - rowTemp.createCell(3); + rowTemp.createCell(3).setCellValue(preVolList.get(j).getGroupCurr()); }else { rowTemp.createCell(1).setCellValue(fcVolList.get(j).getMonVol()); - rowTemp.createCell(2).setCellValue(preVolList.get(j).getMonVol()); - rowTemp.createCell(3).setCellValue(preVolList.get(j).getMonTmp()); + rowTemp.createCell(2).setCellValue(fcVolList.get(j).getMonVol()); + rowTemp.createCell(3).setCellValue(preVolList.get(j).getMonVol()); + rowTemp.createCell(4).setCellValue(preVolList.get(j).getMonTmp()); } //鏀剧數鐗瑰畾鐢靛帇鍊� - int columnIndexTemp = 3; + int columnIndexTemp = 5; Calendar dischargeCalendar = Calendar.getInstance(); dischargeCalendar.setTime(dischargeStartTime); if(dischargeColumnCount > 0){ @@ -864,28 +866,70 @@ dischargeListOneOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); addStatistics(dischargeListOneOriginal,"vol"); //鎬荤數娴佹�荤數鍘嬪垪鍏� + Float groupVolDisOne = dischargeListOneOriginal.get(0).getGroupVol(); + Float groupCurrDisOne = dischargeListOneOriginal.get(0).getGroupCurr(); + BattRealTimeDataHistory groupVolDataDisOne = new BattRealTimeDataHistory(); + groupVolDataDisOne.setMonNum(-2); + groupVolDataDisOne.setGroupVol(groupVolDisOne); + + BattRealTimeDataHistory groupCurrDataDisOne = new BattRealTimeDataHistory(); + groupCurrDataDisOne.setMonNum(-1); + groupCurrDataDisOne.setGroupCurr(groupCurrDisOne); + + dischargeListOne.add(groupVolDataDisOne); + dischargeListOne.add(groupCurrDataDisOne); + dischargeListOne.addAll(dischargeListOneOriginal); //rowTemp.createCell(5).setCellValue("鏀剧數0.5h鐢靛帇鍊硷紙V锛�:"+(j+1)+"#"); //rowTemp.createCell(6).setCellValue("鏀剧數0.5h娓╁害鍊�:"+(j+1)+"#"); - rowTemp.createCell(4).setCellValue(dischargeListOne.get(j).getMonVol()); - rowTemp.createCell(5).setCellValue(dischargeListOne.get(j).getMonTmp()); + if(j==0){ + //rowTemp.createCell(5).setCellValue(dischargeListOne.get(j).getGroupVol()); + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListOne.get(j).getGroupVol()); + }else if (j==1){ + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListOne.get(j).getGroupCurr()); + }else { + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListOne.get(j).getMonVol()); + rowTemp.createCell(columnIndexTemp+1).setCellValue(dischargeListOne.get(j).getMonTmp()); + } columnIndexTemp+=2; if(dischargeColumnCount > 2){ //鍚堝苟鍗曞厓鏍间簡,鎵�浠ョ储寮�+2 //鏃堕棿鍦ㄦ祴璇曞紑濮嬫椂闂�+1h dischargeCalendar.setTime(dischargeStartTime); dischargeCalendar.add(Calendar.HOUR,1); Date recordTimeTwo = dischargeCalendar.getTime(); - List<BattRealTimeDataHistory> dischargeListTwo = battRTDataHisService.getRecordList(battGroupId,recordTimeTwo); - dischargeListTwo.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); - addStatistics(dischargeListTwo,"vol"); + List<BattRealTimeDataHistory> dischargeListTwo = new ArrayList<>(); + List<BattRealTimeDataHistory> dischargeListTwoOriginal = battRTDataHisService.getRecordList(battGroupId,recordTimeTwo); + dischargeListTwoOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); + addStatistics(dischargeListTwoOriginal,"vol"); + //鎬荤數娴佹�荤數鍘嬪垪鍏� + Float groupVolDisTwo = dischargeListTwoOriginal.get(0).getGroupVol(); + Float groupCurrDisTwo = dischargeListTwoOriginal.get(0).getGroupCurr(); + + BattRealTimeDataHistory groupVolDataDisTwo = new BattRealTimeDataHistory(); + groupVolDataDisTwo.setMonNum(-2); + groupVolDataDisTwo.setGroupVol(groupVolDisTwo); + + BattRealTimeDataHistory groupCurrDataDisTwo = new BattRealTimeDataHistory(); + groupCurrDataDisTwo.setMonNum(-1); + groupCurrDataDisTwo.setGroupCurr(groupCurrDisTwo); + + dischargeListTwo.add(groupVolDataDisTwo); + dischargeListTwo.add(groupCurrDataDisTwo); + dischargeListTwo.addAll(dischargeListTwoOriginal); + //rowTemp.createCell(7).setCellValue("鏀剧數1h鐢靛帇鍊硷紙V锛�:"+(j+1)+"#"); //rowTemp.createCell(8).setCellValue("鏀剧數1h娓╁害鍊�:"+(j+1)+"#"); - rowTemp.createCell(6).setCellValue(dischargeListTwo.get(j).getMonVol()); - rowTemp.createCell(7).setCellValue(dischargeListTwo.get(j).getMonTmp()); + if (j==0) { + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListTwo.get(j).getGroupVol()); + }else if (j==1){ + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListTwo.get(j).getGroupCurr()); + }else { + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListTwo.get(j).getMonVol()); + rowTemp.createCell(columnIndexTemp+1).setCellValue(dischargeListTwo.get(j).getMonTmp()); + } columnIndexTemp+=2; if(dischargeColumnCount > 4){ - columnIndexTemp++; //鏀剧數nh钃勭數姹犵數鍘嬪�硷紙V锛�,n浠�2寮�濮� for(int i = 4;i < dischargeColumnCount;i++){ int dischargeHour = i-2; @@ -893,11 +937,33 @@ dischargeCalendar.setTime(dischargeStartTime); dischargeCalendar.add(Calendar.HOUR,dischargeHour); Date recordTimeN = dischargeCalendar.getTime(); - List<BattRealTimeDataHistory> dischargeListN = battRTDataHisService.getRecordList(battGroupId,recordTimeN); - dischargeListN.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); - addStatistics(dischargeListN,"vol"); + List<BattRealTimeDataHistory> dischargeListN = new ArrayList<>(); + List<BattRealTimeDataHistory> dischargeListNOriginal = battRTDataHisService.getRecordList(battGroupId,recordTimeN); + dischargeListNOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); + addStatistics(dischargeListNOriginal,"vol"); + //鎬荤數娴佹�荤數鍘嬪垪鍏� + Float groupVolDisN = dischargeListNOriginal.get(0).getGroupVol(); + Float groupCurrDisN = dischargeListNOriginal.get(0).getGroupCurr(); + + BattRealTimeDataHistory groupVolDataDisN = new BattRealTimeDataHistory(); + groupVolDataDisN.setMonNum(-2); + groupVolDataDisN.setGroupVol(groupVolDisN); + + BattRealTimeDataHistory groupCurrDataDisN = new BattRealTimeDataHistory(); + groupCurrDataDisN.setMonNum(-1); + groupCurrDataDisN.setGroupCurr(groupCurrDisN); + + dischargeListN.add(groupVolDataDisN); + dischargeListN.add(groupCurrDataDisN); + dischargeListN.addAll(dischargeListNOriginal); //rowTemp.createCell(i+5).setCellValue("鏀剧數" + dischargeHour + "h钃勭數姹犵數鍘嬪�硷紙V锛�"); - rowTemp.createCell(i+5).setCellValue(dischargeListN.get(j).getMonVol()); + if(j==0){ + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListN.get(j).getGroupVol()); + }else if (j==1){ + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListN.get(j).getGroupCurr()); + }else { + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeListN.get(j).getMonVol()); + } columnIndexTemp++; } @@ -907,36 +973,68 @@ //濉厖鏀剧數0.5h鍚庡紑璺數鍘嬪�� if(j == 0){ - rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupVol()); + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupVol()); }else if(j == 1){ - rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupCurr()); + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getGroupCurr()); }else { - rowTemp.createCell(++columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getMonVol()); + rowTemp.createCell(columnIndexTemp).setCellValue(dischargeSetVolListOne.get(j).getMonVol()); } + columnIndexTemp++; if(chargeColumnCount > 0){ chargeCalendar = Calendar.getInstance(); chargeCalendar.setTime(chargeStartTime); chargeCalendar.add(Calendar.MINUTE,30); - List<BattRealTimeDataHistory> chargeVolListOne = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime()); - chargeVolListOne.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); - addStatistics(chargeVolListOne,"vol"); - columnIndexTemp++; + List<BattRealTimeDataHistory> chargeVolListOne = new ArrayList<>(); + List<BattRealTimeDataHistory> chargeVolListOneOriginal = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime()); + chargeVolListOneOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); + addStatistics(chargeVolListOneOriginal,"vol"); + //鎬荤數娴佹�荤數鍘嬪垪鍏� + Float groupVolChargeOne = chargeVolListOneOriginal.get(0).getGroupVol(); + Float groupCurrChargeOne = chargeVolListOneOriginal.get(0).getGroupCurr(); + + BattRealTimeDataHistory groupVolDataChargeOne = new BattRealTimeDataHistory(); + groupVolDataChargeOne.setMonNum(-2); + groupVolDataChargeOne.setGroupVol(groupVolChargeOne); + + BattRealTimeDataHistory groupCurrDataChargeOne = new BattRealTimeDataHistory(); + groupCurrDataChargeOne.setMonNum(-1); + groupCurrDataChargeOne.setGroupCurr(groupCurrChargeOne); + + chargeVolListOne.add(groupVolDataChargeOne); + chargeVolListOne.add(groupCurrDataChargeOne); + chargeVolListOne.addAll(chargeVolListOneOriginal); //rowTemp.createCell(columnIndexTemp).setCellValue("鍏呯數0.5h"); rowTemp.createCell(columnIndexTemp).setCellValue(chargeVolListOne.get(j).getMonVol()); + columnIndexTemp++; if(chargeColumnCount > 1){ //鍏呯數nh,n浠�1寮�濮� for(int i = 1;i < chargeColumnCount;i++){ - columnIndexTemp++; - chargeCalendar.setTime(chargeStartTime); chargeCalendar.add(Calendar.HOUR,i); - List<BattRealTimeDataHistory> chargeVolListN = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime()); - chargeVolListN.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); - addStatistics(chargeVolListN,"vol"); + List<BattRealTimeDataHistory> chargeVolListN = new ArrayList<>(); + List<BattRealTimeDataHistory> chargeVolListNOriginal = battRTDataHisService.getRecordList(battGroupId, chargeCalendar.getTime()); + chargeVolListNOriginal.sort(Comparator.comparingInt(BattRealTimeDataHistory::getMonNum)); + addStatistics(chargeVolListNOriginal,"vol"); + //鎬荤數娴佹�荤數鍘嬪垪鍏� + Float groupVolChargeN = chargeVolListNOriginal.get(0).getGroupVol(); + Float groupCurrChargeN = chargeVolListNOriginal.get(0).getGroupCurr(); + + BattRealTimeDataHistory groupVolDataChargeN = new BattRealTimeDataHistory(); + groupVolDataChargeN.setMonNum(-2); + groupVolDataChargeN.setGroupVol(groupVolChargeN); + + BattRealTimeDataHistory groupCurrDataChargeN = new BattRealTimeDataHistory(); + groupCurrDataChargeN.setMonNum(-1); + groupCurrDataChargeN.setGroupCurr(groupCurrChargeN); + + chargeVolListN.add(groupVolDataChargeN); + chargeVolListN.add(groupCurrDataChargeN); + chargeVolListN.addAll(chargeVolListNOriginal); //rowTemp.createCell(columnIndexTemp).setCellValue("鍏呯數" + (i) + "h钃勭數姹犵數鍘嬪�硷紙V锛�"); rowTemp.createCell(columnIndexTemp).setCellValue(chargeVolListN.get(j).getMonVol()); + columnIndexTemp++; } } @@ -946,16 +1044,27 @@ //rowTemp.createCell(++columnIndexTemp).setCellValue("鍏呮弧鍚庤搫鐢垫睜鐢靛帇鍊硷紙V)锛堢數娴佷负0锛�"); if (fcVolListAfter.size() > 0){ if(j == 0){ - rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupVol()); + rowTemp.createCell(columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupVol()); }else if(j == 1){ - rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupCurr()); + rowTemp.createCell(columnIndexTemp).setCellValue(fcVolListAfter.get(j).getGroupCurr()); }else { - rowTemp.createCell(++columnIndexTemp).setCellValue(fcVolListAfter.get(j).getMonVol()); + rowTemp.createCell(columnIndexTemp).setCellValue(fcVolListAfter.get(j).getMonVol()); } }else { - rowTemp.createCell(++columnIndexTemp).setCellValue("-"); + rowTemp.createCell(columnIndexTemp).setCellValue("-"); } - rowTemp.createCell(++columnIndexTemp).setCellValue("-"); + columnIndexTemp++; + rowTemp.createCell(columnIndexTemp); + } + + //璁剧疆鍓�6琛屾墍鏈夌殑琛ㄦ牸鍒涘缓,閬垮厤鍑虹幇鏃犺竟妗� + for (int i = 0; i < 6; i++) { + XSSFRow rowTmp = sheet.getRow(i); + for (int j = 0; j < columnCount; j++) { + if(rowTmp.getCell(j) == null){ + rowTmp.createCell(j); + } + } } //=====================鏍煎紡璁剧疆=====================// @@ -967,12 +1076,31 @@ addGlobalStylesToAllCells(sheet, workbook); //鍒涘缓绗竴琛屾槸鏍囬琛� - setRowStyle(workbook,sheet.getRow(0),true,15); + setRowStyle(workbook,sheet.getRow(0),true,20); //绗簩琛岃缃姞绮� - setRowStyle(workbook,sheet.getRow(1),true,15); - + setRowStyle(workbook,sheet.getRow(1),true,11,HorizontalAlignment.LEFT); + //绗洓琛岃缃瓧浣撻鑹� + setRowStyle(workbook,sheet.getRow(3),false,9,IndexedColors.GREY_40_PERCENT.getIndex()); + //绗�5琛屽埌鏈�鍚庝竴琛�,璁剧疆鏁板�肩殑灏忔暟鐐逛负4浣� + setDateFormat(workbook,sheet,4,113,1,columnCount-1,"0.0000"); //鐢熸垚鍥捐〃 createChart(sheet, columnCount, 6,""); + } + + private void setDateFormat(Workbook workbook,XSSFSheet sheet, int rowIndexStart, int rowIndexEnd,int columnIndexStart,int columnIndexEnd, String formatStr) { + CellStyle decimalStyle = workbook.createCellStyle(); + DataFormat format = workbook.createDataFormat(); + decimalStyle.setDataFormat(format.getFormat(formatStr)); + for (int i = rowIndexStart; i <= rowIndexEnd; i++) { + XSSFRow row = sheet.getRow(i); + for (int j = columnIndexStart; j <= columnIndexEnd; j++) { + XSSFCell cell = row.getCell(j); + if(cell.getCellType() == CellType.NUMERIC) { + cell.getCellStyle().setDataFormat(format.getFormat(formatStr)); + } + } + + } } private XSSFCellStyle getCellStyleFont(XSSFCellStyle cellStyleOriginal, XSSFWorkbook workbook, boolean isFontBold, int fontSize) { @@ -1104,6 +1232,7 @@ //璁剧疆瀛椾綋鍜屽姞绮� Font font = workbook.createFont(); font.setFontHeightInPoints((short) (fontSize)); + font.setFontName("瀹嬩綋"); font.setBold(isFontBold); cellStyleNew.setFont(font); @@ -1111,8 +1240,51 @@ } } + public void setRowStyle(Workbook workbook,Row row,boolean isFontBold,int fontSize,HorizontalAlignment horizontalAlignment) { + for (Cell cell : row) { + //鍏堝厠闅嗗師鏉ョ殑灞炴�� + CellStyle cellStyleNew = workbook.createCellStyle(); + cellStyleNew.cloneStyleFrom(cell.getCellStyle()); + + //璁剧疆瀛椾綋鍜屽姞绮� + Font font = workbook.createFont(); + font.setFontHeightInPoints((short) (fontSize)); + font.setBold(isFontBold); + font.setFontName("瀹嬩綋"); + + //璁剧疆姘村钩瀵归綈鏂瑰紡 + cellStyleNew.setAlignment(horizontalAlignment); + + cellStyleNew.setFont(font); + cell.setCellStyle(cellStyleNew); + } + } + + public void setRowStyle(Workbook workbook,Row row,boolean isFontBold,int fontSize,short color) { + for (Cell cell : row) { + //璺宠繃绗竴鍒� + if(cell.getColumnIndex() == 0) { + continue; + } + //鍏堝厠闅嗗師鏉ョ殑灞炴�� + CellStyle cellStyleNew = workbook.createCellStyle(); + cellStyleNew.cloneStyleFrom(cell.getCellStyle()); + + //璁剧疆瀛椾綋鍜屽姞绮� + Font font = workbook.createFont(); + font.setFontHeightInPoints((short) (fontSize)); + font.setBold(isFontBold); + font.setFontName("瀹嬩綋"); + font.setColor(color); + + cellStyleNew.setFont(font); + cell.setCellStyle(cellStyleNew); + } + } + /** - * 杩欎釜鏂规硶鏈�鍚庢墽琛�,鐢ㄤ簬瀵瑰凡琚垱寤虹殑琛屽唴鐨勬墍鏈夊崟鍏冩牸娣诲姞杈规.鑳借嚜鍔ㄨ瘑鍒鍒涘缓鐨勬墍鏈夊垪鍜屾墍鏈夊崟鍏冩牸 + * 璁剧疆鍏ㄥ眬鐨勫睘鎬�.杩欎釜鏂规硶鍦ㄦ墍鏈夊崟鍏冩牸鍒涘缓鍚庤皟鐢� + * 鐢ㄤ簬瀵瑰凡琚垱寤虹殑琛屽唴鐨勬墍鏈夊崟鍏冩牸娣诲姞杈规.鑳借嚜鍔ㄨ瘑鍒鍒涘缓鐨勬墍鏈夊垪鍜屾墍鏈夊崟鍏冩牸 * @param sheet * @param workbook */ @@ -1124,7 +1296,16 @@ borderedStyle.setBorderBottom(BorderStyle.THIN); borderedStyle.setBorderLeft(BorderStyle.THIN); borderedStyle.setBorderRight(BorderStyle.THIN); - + Font font = workbook.createFont(); + //榛樿瀛椾綋澶у皬涓�9,瀹嬩綋 + font.setFontHeightInPoints((short) 9); + font.setFontName("瀹嬩綋"); + borderedStyle.setFont(font); + //榛樿妯珫灞呬腑 + borderedStyle.setAlignment(HorizontalAlignment.CENTER); + borderedStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //榛樿鑷姩鎹㈣ + borderedStyle.setWrapText(true); for (Row row : sheet) { for (Cell cell : row) { cell.setCellStyle(borderedStyle); -- Gitblit v1.9.1