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("读取导入模板失败");
        }
    }

测试结果:

java怎么判断是不是空文件 java判断文件内容是否为空_java


由此可以看到,如果当前页为空,使用此方法是可以检测是否为空的!