|
@@ -3507,7 +3507,16 @@ public class TaskController extends BladeController {
|
|
|
/*准备*/
|
|
|
reportResults.forEach(rs -> {
|
|
|
if (rs.getInitTableName().equals("m_20240325154016_1772166597482381312")) {
|
|
|
- rs.setDeleteRow("13,15");
|
|
|
+ List<Map.Entry<String,Object>> entries=rs.getData().get(0).entrySet().stream().filter(e->Integer.parseInt(e.getKey().split("_")[1])==1).sorted(Comparator.comparingInt(e->Integer.parseInt(e.getKey().split("_")[0]))).collect(Collectors.toList());
|
|
|
+ List<String> list =entries.stream().map(e->e.getValue().toString()).collect(Collectors.toList());
|
|
|
+ int index= list.indexOf("小计");
|
|
|
+ if(index>0) {
|
|
|
+ Map.Entry<String,Object> head=entries.get(index-1);
|
|
|
+ Map.Entry<String,Object> tail=entries.get(index);
|
|
|
+ String start=(Integer.parseInt(head.getKey().split("_")[0])+1-1)+"";
|
|
|
+ String end=(Integer.parseInt(tail.getKey().split("_")[0])-1-1)+"";
|
|
|
+ rs.setDeleteRow(start+","+end);
|
|
|
+ }
|
|
|
}
|
|
|
/*初始化路径*/
|
|
|
rs.pathInit(file_path, report.getContractId());
|
|
@@ -3602,7 +3611,7 @@ public class TaskController extends BladeController {
|
|
|
if (deleteRow != null && !deleteRow.isEmpty()) {
|
|
|
LinkedList<Integer> rowIds = Arrays.stream(deleteRow.split("\\D+")).map(Integer::parseInt).collect(Collectors.toCollection(LinkedList::new));
|
|
|
if (rowIds.size() >= 2) {
|
|
|
- // deleteRows2(sheet, rowIds.getFirst(), rowIds.getLast());
|
|
|
+ deleteRows2(sheet, rowIds.getFirst(), rowIds.getLast());
|
|
|
}
|
|
|
}
|
|
|
//去掉表格虚线
|
|
@@ -3708,17 +3717,18 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
public void deleteRows2(Sheet sheet, int startRow, int endRow) {
|
|
|
int lastRowNum = sheet.getLastRowNum();
|
|
|
- deleteMergedRegions(sheet, Objects.requireNonNull(getMergedRegions(sheet, coords2Int("A" + (startRow + 1) + "~" + "R" + (endRow + 1)))));
|
|
|
- for (int i = endRow; i >= startRow; i--) {
|
|
|
- deleteMergedRegions(sheet, i);
|
|
|
- Row row = sheet.getRow(i);
|
|
|
- if (row != null) {
|
|
|
- sheet.removeRow(row);
|
|
|
+ /* deleteMergedRegions(sheet, Objects.requireNonNull(getMergedRegions(sheet, coords2Int("A" + (startRow+1) + "~" + "R" + (endRow+1)))));*/
|
|
|
+ CellStyle cellStyle= sheet.getWorkbook().createCellStyle();
|
|
|
+ cellStyle.setBorderBottom(BorderStyle.NONE);
|
|
|
+ cellStyle.setBorderTop(BorderStyle.NONE);
|
|
|
+ cellStyle.setBorderLeft(BorderStyle.NONE);
|
|
|
+ cellStyle.setBorderRight(BorderStyle.NONE);
|
|
|
+ for(int i=startRow;i<=endRow;i++){
|
|
|
+ for(Cell cell:sheet.getRow(i)){
|
|
|
+ cell.setCellStyle(cellStyle);
|
|
|
}
|
|
|
+ sheet.getRow(i).setZeroHeight(true);
|
|
|
}
|
|
|
- /*deleteMergedRegions(sheet, Objects.requireNonNull(getMergedRegions(sheet, coords2Int("A" + (startRow+1) + "~" + "R" + (endRow+1)))));*/
|
|
|
- sheet.shiftRows(endRow + 1, lastRowNum, -3);
|
|
|
- System.out.println();
|
|
|
}
|
|
|
|
|
|
public static void deleteMergedRegions(Sheet sheet, List<CellRangeAddress> regionsToDelete) {
|