Java 如何使用ApachePOI从Excel获取更新的行数
最初我使用了4行数据,然后删除了最后两行。问题是,总行数仍然是4。我应该怎么做才能更新计数Java 如何使用ApachePOI从Excel获取更新的行数,java,apache-poi,xlsx,Java,Apache Poi,Xlsx,最初我使用了4行数据,然后删除了最后两行。问题是,总行数仍然是4。我应该怎么做才能更新计数 FileInputStream inputStream = new FileInputStream(new File(excelFilePath)); Workbook workbook = new XSSFWorkbook(inputStream); Sheet firstSheet = (Sheet) workbook.getSheetAt(0); System.ou
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = (Sheet) workbook.getSheetAt(0);
System.out.println("No of rows:"+firstSheet.getPhysicalNumberOfRows());
Iterator<Row> iterator = firstSheet.iterator();
try{
while (iterator.hasNext()) {
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
cell.setCellType(Cell.CELL_TYPE_STRING);
if(!cell.getStringCellValue().isEmpty()){
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
writer.append(cell.getStringCellValue());
break;
}
}
}
}
}finally{
inputStream.close();
workbook.close();
writer.flush();
writer.close();
}
FileInputStream-inputStream=newfileinputstream(新文件(excelFilePath));
工作簿=新XSSF工作簿(inputStream);
工作表firstSheet=(工作表)工作簿。getSheetAt(0);
System.out.println(“行数:+firstSheet.getPhysicalNumberOfRows());
迭代器迭代器=firstSheet.Iterator();
试一试{
while(iterator.hasNext()){
行nextRow=iterator.next();
迭代器cellIterator=nextRow.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
cell.setCellType(cell.cell\u TYPE\u字符串);
如果(!cell.getStringCellValue().isEmpty()){
开关(cell.getCellType()){
case Cell.Cell\u类型\u字符串:
writer.append(cell.getStringCellValue());
打破
}
}
}
}
}最后{
inputStream.close();
workbook.close();
writer.flush();
writer.close();
}
已通过删除Excel中的整行来清除问题。如果要删除Excel中的某些数据,请不要只清除单元格中的内容,而是删除整行 转到Excel文档,选择已删除的行并清除内容。如果您在单元格中输入了任何内容,它将被标记为已使用,并将包含在实际行数/单元格数中,除非您将其清除。@TarasShpulyar我已通过使用“清除内容”选项选择已删除的行来清除内容。但我仍然得到相同的行数。