POM依赖:
我这里使用的是4.1.X版本的依赖
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>
<!-- poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.1</version>
</dependency>
我在resources下放置了一个内容为空的aa.xlsx的excel文件。
通过查阅底层代码,发现XSSF下的sheetAt.getLastRowNum()方法里有 是否为空的方法。如果为空,则返回0
//这里可以看到,这里判断是否为空,为空返回0
public int getLastRowNum() {
return this._rows.isEmpty() ? 0 : (Integer)this._rows.lastKey();
}
demo测试代码:
public static void main(String[] args) {
Workbook workbook = null;
FileInputStream fis = null;
try {
//这里需要注意写的是绝对路径!!!
fis = new FileInputStream("D:\\dev\\project\\keji_demo\\src\\main\\resources\\aa.xlsx");
workbook = new XSSFWorkbook(fis);
Sheet sheetAt = workbook.getSheetAt(0);
int lastRowNum = sheetAt.getLastRowNum();
if (lastRowNum==0){
throw new RuntimeException("sheet页为空!");
}
} catch (IOException e) {
throw new RuntimeException("读取导入模板失败");
}
}
测试结果:
由此可以看到,如果当前页为空,使用此方法是可以检测是否为空的!