getLastRowNum 未返回正确的行数

excel

1个回答

写回答

13544356820

2025-09-15 16:35

+ 关注

excel
excel

根据getLastRowNum未返回正确的行数 ,并添加案例代码

在进行excel数据处理时,我们经常会使用Apache POI这样的Java库来读取和操作excel文件。其中,getLastRowNum是一个常用的方法,用于获取工作表中的最后一行的行号。然而,有时我们可能会遇到getLastRowNum未返回正确的行数的情况。接下来,我们将探讨这个问题,并提供解决方案。

首先,让我们来了解一下getLastRowNum方法的作用。getLastRowNum用于获取excel工作表中的最后一行的行号,行号从0开始计数。通常情况下,getLastRowNum的返回值应该是最后一行的行号加1,即总行数。然而,并不是所有情况下它都能正确返回总行数。下面是一个简单的示例代码:

Java

import org.apache.poi.ss.usermodel.*;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import Java.io.FileInputStream;

import Java.io.IOException;

public class excelReader {

public static void mAIn(String[] args) {

try (FileInputStream fis = new FileInputStream("data.xlsx");

Workbook workbook = new XSSFWorkbook(fis)) {

Sheet sheet = workbook.getSheetAt(0);

int lastRowNum = sheet.getLastRowNum();

int TotalRows = lastRowNum + 1;

System.out.println("总行数:" + TotalRows);

} catch (IOException e) {

e.printStackTrace();

}

}

}

在这个示例中,我们打开一个名为"data.xlsx"的excel文件,并获取第一个工作表。然后,使用getLastRowNum方法获取最后一行的行号,再加1得到总行数。最后,将总行数打印输出。

然而,有时候我们会发现getLastRowNum返回的总行数并不正确。这可能会导致我们在数据处理过程中出现错误,因为我们依赖于正确的总行数来遍历和处理数据。那么,为什么会出现这种问题呢?

这个问题的根源是excel文件的空行。当excel文件中存在空白行时,getLastRowNum方法会将空白行也计算在内,从而导致返回的总行数比实际行数多出一些。这可能会给我们的数据处理带来麻烦。

为了解决这个问题,我们可以使用getLastRowNum方法的替代方案——getPhysicalNumberOfRows。getPhysicalNumberOfRows方法返回的是实际包含数据的行数,不会计算空白行。下面是修改后的示例代码:

Java

import org.apache.poi.ss.usermodel.*;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import Java.io.FileInputStream;

import Java.io.IOException;

public class excelReader {

public static void mAIn(String[] args) {

try (FileInputStream fis = new FileInputStream("data.xlsx");

Workbook workbook = new XSSFWorkbook(fis)) {

Sheet sheet = workbook.getSheetAt(0);

int TotalRows = sheet.getPhysicalNumberOfRows();

System.out.println("总行数:" + TotalRows);

} catch (IOException e) {

e.printStackTrace();

}

}

}

解决方案:使用getPhysicalNumberOfRows方法

在这个修改后的示例代码中,我们使用getPhysicalNumberOfRows方法替代了getLastRowNum方法,从而得到了正确的总行数。通过这种方式,我们可以避免空白行对总行数的影响,确保数据处理的准确性。

getLastRowNum未返回正确的行数的问题是由excel文件中的空白行引起的。为了解决这个问题,我们可以使用getPhysicalNumberOfRows方法来获取实际包含数据的行数。通过合理选择合适的方法,我们可以确保在excel数据处理过程中获得准确的行数信息,从而避免潜在的错误。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号