Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ApachePOI从Excel获取更新的行数_Java_Apache Poi_Xlsx - Fatal编程技术网

Java 如何使用ApachePOI从Excel获取更新的行数

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

最初我使用了4行数据,然后删除了最后两行。问题是,总行数仍然是4。我应该怎么做才能更新计数

    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我已通过使用“清除内容”选项选择已删除的行来清除内容。但我仍然得到相同的行数。