在javacode中从excel中删除具有特定值的行
我想从excel中删除F列中值为1的所有行,并将其保存在新的excel java代码中。下面是我的java代码。正在创建新的excel,但我无法删除F列中所有值为1的行。我的java代码是:在javacode中从excel中删除具有特定值的行,java,excel,apache-poi,Java,Excel,Apache Poi,我想从excel中删除F列中值为1的所有行,并将其保存在新的excel java代码中。下面是我的java代码。正在创建新的excel,但我无法删除F列中所有值为1的行。我的java代码是: final String filterValue = "1"; FileInputStream excelFile = new FileInputStream("Users.xls"); System.out.println("File read successfully!!");
final String filterValue = "1";
FileInputStream excelFile = new FileInputStream("Users.xls");
System.out.println("File read successfully!!");
HSSFWorkbook wb = new HSSFWorkbook(excelFile);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFWorkbook wb2 = new HSSFWorkbook();
wb2 = wb;
Row row;
row = sheet.getRow(0);
int getLastCell=row.getLastCellNum()-1;
int lastIndex = sheet.getLastRowNum();
for (int i=0; i<=lastIndex; i++){
row=sheet.getRow(i);
if(row.getCell(getLastCell)!=null && (row.getCell(getLastCell).equals(filterValue)))
{
System.out.println("Removing row "+row);
sheet.removeRow(row);
//sheet.shiftRows(i, lastIndex, -1);
}
FileOutputStream fileOut = new FileOutputStream("FilteredUserList.xls");
wb2.write(fileOut);
fileOut.close();
}
最终字符串filterValue=“1”;
FileInputStream excelFile=新的FileInputStream(“Users.xls”);
System.out.println(“文件读取成功!!”;
HSSF工作手册wb=新的HSSF工作手册(Excel文件);
HSSFSheet sheet=wb.getSheetAt(0);
HSSFWorkbook wb2=新的HSSFWorkbook();
wb2=wb;
行行;
行=表。getRow(0);
int getLastCell=row.getLastCellNum()-1;
int lastIndex=sheet.getLastRowNum();
对于(int i=0;irow.getCell(getLastCell).equals(filterValue)
检查Cell
是否等于String
。应使用Cell.getStringCellValue().equals(filterValue)
我将其更改为:Cell Cell Cell=row.getCell(getLastCell);if(Cell!=null&(Cell.getStringCellValue().equals(filterValue)))但是仍然会出现相同的错误您说的是什么错误?与从文本单元格读取数值的错误相同。但是使用DataFormatter它是固定的。但是值为1的行现在在excel中显示为空白。它们不会上移。显示stacktrace和完整代码