Java 加载了POI的excel文件的奇怪内容

Java 加载了POI的excel文件的奇怪内容,java,excel,apache-poi,Java,Excel,Apache Poi,我获得了一个excel(.xls)文件,似乎无法使用POI库(测试版本为3.9、3.10.1)正确加载该文件。加载后的文件内容如下: ,尺寸1,尺寸2,尺寸3,尺寸4,。。。实际值,0.0014,16.0329,240.4296,。。。尺寸22MAX,尺寸22MIN,,,,,,,。 而真正的内容是: Critical Parameters & Quality Data Manufacturing Supplier: Manufacturer Supplier name: ???

我获得了一个excel(.xls)文件,似乎无法使用POI库(测试版本为3.9、3.10.1)正确加载该文件。加载后的文件内容如下:

,尺寸1,尺寸2,尺寸3,尺寸4,。。。实际值,0.0014,16.0329,240.4296,。。。尺寸22MAX,尺寸22MIN,,,,,,,。

而真正的内容是:

Critical Parameters & Quality Data  

Manufacturing Supplier: 
Manufacturer Supplier name: ???  
Manufacturer Supplier code: 

Sampling    Sample Size:    1
...
编辑
我已更新该文件是使用VBA生成的

使用的java代码:

    Workbook workbook;
    workbook = WorkbookFactory.create(fileInputStream);
    workbook.setMissingCellPolicy(Row.CREATE_NULL_AS_BLANK);
    Sheet sheet = workbook.getSheetAt(0);
    FormulaEvaluator evaluator = workbook.getCreationHelper()
            .createFormulaEvaluator();

    inputMatrix = new ArrayList<>();

    for (int j = 0; j <= sheet.getLastRowNum(); j++) {
        ArrayList<Object> tRow = new ArrayList<>();
        Row row = sheet.getRow(j);
        if (row != null) {
            for (int i = 0; i < row.getLastCellNum(); i++) {
                Cell cell = row.getCell(i);
                if (cell == null)
                    tRow.add("");
                else
                    try {
                        switch (evaluator.evaluateInCell(cell)
                                .getCellType()) {
                        case Cell.CELL_TYPE_STRING:
                            String strVal = /*cell.getStringCellValue();*/ cell.getRichStringCellValue().toString(); 
                            tRow.add(strVal);
                            break;
                        case Cell.CELL_TYPE_NUMERIC:
                            if (DateUtil.isCellDateFormatted(cell)) {
                                tRow.add(cell.getDateCellValue());
                            } else {
                                tRow.add(cell.getNumericCellValue());
                            }
                            break;
                        case Cell.CELL_TYPE_BOOLEAN:
                            tRow.add(cell.getBooleanCellValue());
                            break;
                        case Cell.CELL_TYPE_FORMULA:
                            tRow.add(cell.getCellFormula());
                            break;
                        default:
                            tRow.add("");
                        }
                    } catch (Exception e) {
                        tRow.add("ERR");
                        logger.error("error evaluating excel file, assigning ERR value to the cell.", e);
                    }
            }
        }
        inputMatrix.add(tRow);
    }
工作簿;
工作簿=WorkbookFactory.create(fileInputStream);
工作簿.setMissingCellPolicy(行.创建为空\u为空);
工作表=工作簿。getSheetAt(0);
FormulaEvaluator evaluator=工作簿.getCreationHelper()
.createFormulaEvaluator();
inputMatrix=新的ArrayList();

对于(int j=0;j事实证明,问题是第一张被隐藏的纸。

奇怪的是,它的内容与上面写的完全不同。我将更新问题以澄清。