我正在尝试使用java在excel表格中删除一行。
但是我的代码没有删除任何东西。
这是我删除最后一行的代码。
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.Sheet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
final String filepath = "data-DB.xlsx";
File workbookFile = new File(filepath);
FileInputStream in = new FileInputStream(workbookFile);
Workbook database = WorkbookFactory.create(in);
Sheet sheet = database.getSheet("Users");
int lastRow = sheet.getLastRowNum();
Row row = sheet.getRow(lastRow);
sheet.removeRow(row);
}
}这一行应该得到行
Row row = sheet.getRow(lastRow);这应该会删除该行。
sheet.removeRow(row);我做错了什么?
发布于 2021-05-13 14:04:15
getLastRowNum的文档中写道:
获取工作表上的最后一行注意: Excel和Apache POI仍可能将之前具有内容且后来设置为空的行计算为行,因此此方法的结果将包括此类行,因此返回值可能高于预期!
所以很可能你会得到一个已经为空的行号,并且你正在尝试删除它,你会看到removeRow不工作。打印或调试lastRow的值以修复错误
https://stackoverflow.com/questions/67514531
复制相似问题