Java Apache POI未返回正确数量的工作表

Java Apache POI未返回正确数量的工作表,java,excel,apache-poi,spreadsheet,Java,Excel,Apache Poi,Spreadsheet,我正在使用ApachePOI处理电子表格,如果电子表格有多个表格,我需要抛出一个异常。问题是,如果文件是.xlsx,它可以正常工作,但是如果文件是.xls,它总是给出0的大小。代码如下: public void validateSpreadsheet(String ext) { if (ext.equals("xls") || ext.equals("xlsx") || ext.equals("xlsm")) { Workbook myWorkBook; t

我正在使用ApachePOI处理电子表格,如果电子表格有多个表格,我需要抛出一个异常。问题是,如果文件是.xlsx,它可以正常工作,但是如果文件是.xls,它总是给出0的大小。代码如下:

public void validateSpreadsheet(String ext) {
if (ext.equals("xls") || ext.equals("xlsx") || ext.equals("xlsm")) {
   Workbook myWorkBook;
                try {
                    if (ext.equals("xls")) {
                        myWorkBook = new HSSFWorkbook();
                    } else {
                        myWorkBook = new XSSFWorkbook();
                    }

                } catch (POIXMLException ex) {
                    throw ProdutoExceptions.OOXML_NOT_ALLOWED;
                }
                if(myWorkBook.getNumberOfSheets() > 1){
                    throw ProdutoExceptions.INVALID_NUMBER_OF_SHEETS;
                }
}

重命名时,请确保使用HSSF读取.xls和XSSF到.xlsx文件

HSSF是POI项目的Excel 97-2007(.xls)文件格式的纯Java实现。
XSSF是POI项目的Excel 2007(.xlsx)文件格式的纯Java实现。

Hmm您只是在创建一个新的空工作簿,它应该如何包含工作表?代码只是对我所做工作的改编。我保证它收到了一些东西。你需要发布实际的代码a,这是得到一个像样答案的唯一方法