SXSSFSheet的shiftRows源码
时间: 2024-05-03 21:17:48 浏览: 153
SXSSFSheet类是Apache POI中处理大型Excel文件的一种方式,其中shiftRows方法用于将行移动到新位置。该方法的源码如下:
```java
@Override
public void shiftRows(int startRow, int endRow, int n) {
if (n == 0) {
return;
}
if (startRow < 0 || endRow < startRow || endRow > lastRowNum) {
throw new IllegalArgumentException("Invalid row range");
}
// remove affected merged regions
removeMergedRegions(startRow, endRow);
int step;
int i;
if (n < 0) {
step = -1;
i = startRow;
while (i >= 0 && i >= startRow + n) {
shiftRow(i, endRow, n);
i--;
}
} else {
step = 1;
i = endRow;
while (i >= startRow && i <= lastRowNum && i <= endRow + n) {
shiftRow(i, endRow, n);
i++;
}
}
// re-add affected merged regions
addMergedRegions();
}
```
此方法首先检查移动行数是否为0,如果是则直接返回。然后检查要移动的行的范围是否有效。接下来,该方法将移动的方向分为向上和向下,并在循环中调用shiftRow方法来移动行。最后,该方法重新添加受影响的合并区域。
阅读全文