sheet.shiftRows(21, 44, moveNUM,true); java中 poi3.9报错
时间: 2024-03-09 21:49:44 浏览: 20
根据您提供的信息,我可以猜测您在使用 Apache POI 3.9 来操作 Excel 文件,并且在使用 `sheet.shiftRows(21, 44, moveNUM,true)` 方法时遇到了报错。
在 Apache POI 3.9 中,`sheet.shiftRows()` 方法的参数列表如下:
```
void shiftRows(int startRow, int endRow, int n, boolean copyRowHeight, boolean resetOriginalRowHeight);
```
其中,第四个参数 `copyRowHeight` 指定是否将被移动的行的行高复制到新插入的行中,而第五个参数 `resetOriginalRowHeight` 指定是否重置原始行的高度。
因此,您可以尝试将您的代码修改为:
```
sheet.shiftRows(21, 44, moveNUM, true, true);
```
其中,第四个参数 `true` 表示将被移动的行的行高复制到新插入的行中,第五个参数 `true` 表示重置原始行的高度。
希望这可以帮助您解决问题!
相关问题
java中 poi3.9 sheet.shiftRows()时如何做到上移时覆盖原本行的数据
在使用 `sheet.shiftRows()` 方法上移行时,如果希望新插入的行覆盖原本行的数据,可以将第五个参数 `resetOriginalRowHeight` 设置为 `true`。这样,被移动的行将被删除,而新插入的行将会覆盖原本行的数据。
以下是使用 `sheet.shiftRows()` 方法上移行并覆盖原本行的数据的示例代码:
```
// 将第 21 行到第 44 行上移 moveNUM 行,并覆盖原本行的数据
int startRow = 21;
int endRow = 44;
int moveNUM = -1; // 向上移动一行
sheet.shiftRows(startRow, endRow, moveNUM, true, true);
```
在上面的示例代码中,我们将第 21 行到第 44 行上移了一行,并将第 21 行覆盖了原本的数据。
希望这可以帮助您解决问题!
sheet.shiftRows(21, 44, -13); 操作后原21-34行没了
根据你提供的信息,可能是因为你使用的是 Apache POI 库,而 `sheet.shiftRows(21, 44, -13)` 方法默认会删除被移动的行数据。具体来说,这个方法的第四个参数默认为 true,表示删除被移动的行数据,如果你希望保留被移动的行数据,需要将第四个参数设置为 false。
以下是一个示例代码,展示如何使用 `sheet.shiftRows` 方法将 Sheet 中的行整体向上移动,并保留被移动的行数据:
```java
import org.apache.poi.ss.usermodel.*;
import java.io.*;
public class ExcelExample {
public static void main(String[] args) throws IOException {
// 打开 Excel 文件
Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));
// 选择 Sheet
Sheet sheet = workbook.getSheet("Sheet1");
// 向上移动第 21 行到第 44 行整体 13 行,并保留被移动的行数据
sheet.shiftRows(20, 43, -13, false, true);
// 保存修改后的 Excel 文件
FileOutputStream outputStream = new FileOutputStream("example.xlsx");
workbook.write(outputStream);
outputStream.close();
}
}
```
这个示例代码中,我们首先使用 `WorkbookFactory.create` 方法打开了一个名为 `example.xlsx` 的 Excel 文件,并选择了名为 `Sheet1` 的工作表。然后,我们使用 `sheet.shiftRows` 方法将第 21 行到第 44 行整体向上移动了 13 行,并保留了被移动的行数据。其中,`false` 表示不删除被移动的行数据,`true` 表示更新公式的引用。最后,我们使用 `FileOutputStream` 将修改后的 Excel 文件保存到磁盘上。