entry.getKey().setRow(entry.getValue());
}
- //rebuild the _rows map
- Map<Integer, XSSFRow> map = new HashMap<>();
- for(XSSFRow r : _rows.values()) {
- // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
- final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
- map.put(rownumI, r);
- }
- _rows.clear();
- _rows.putAll(map);
-
+ rebuildRows();
}
+
private int shiftedRowNum(int startRow, int endRow, int n, int rownum) {
// no change if before any affected row
if(rownum < startRow && (n > 0 || (startRow - rownum) > n)) {
// row is part of the shifted block
return rownum + n;
}
+
private void shiftCommentsForColumns(XSSFVMLDrawing vml, int startColumnIndex, int endColumnIndex, final int n){
// then do the actual moving and also adjust comments/rowHeight
// we need to sort it in a way so the shifting does not mess up the structures,
entry.getKey().setColumn(entry.getValue());
}
- //rebuild the _rows map
- Map<Integer, XSSFRow> map = new HashMap<>();
- for(XSSFRow r : _rows.values()) {
- // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
- final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
- map.put(rownumI, r);
- }
- _rows.clear();
- _rows.putAll(map);
-
+ rebuildRows();
}
/**
}*/
}
- int minCell=Integer.MAX_VALUE, maxCell=Integer.MIN_VALUE;
- for(XSSFRow row : _rows.values()){
+ int minCell = Integer.MAX_VALUE, maxCell = Integer.MIN_VALUE;
+ for(Map.Entry<Integer, XSSFRow> entry : _rows.entrySet()) {
+ XSSFRow row = entry.getValue();
+
// first perform the normal write actions for the row
row.onDocumentWrite();