Java 如何从excel文件中恢复公式单元格缓存结果

Java 如何从excel文件中恢复公式单元格缓存结果,java,excel,apache-poi,Java,Excel,Apache Poi,我试图在excel中检索公式单元格的缓存结果,整个列由公式单元格组成,我想将列单元格的缓存结果存储在arraylist中,但我得到了错误。 抱歉,我之前粘贴了错误的代码,现在已修复 public static void main(String[] args) throws Exception { String filename = "C:/Users/L30902/Desktop/eclipse folder/FeaturesTest/student.xlsx"; FileInp

我试图在excel中检索公式单元格的缓存结果,整个列由公式单元格组成,我想将列单元格的缓存结果存储在arraylist中,但我得到了错误。 抱歉,我之前粘贴了错误的代码,现在已修复

public static void main(String[] args) throws Exception {
    String filename = "C:/Users/L30902/Desktop/eclipse folder/FeaturesTest/student.xlsx";
    FileInputStream fis = null;
    int cellvalue = 0;

    try {
        fis = new FileInputStream(filename);
        XSSFWorkbook workbook = new XSSFWorkbook(fis);
        XSSFSheet sheet = workbook.getSheetAt(0);
        Iterator rowIter = sheet.rowIterator();

        while (rowIter.hasNext()) {
            XSSFRow myRow = (XSSFRow) rowIter.next();
            Iterator cellIter = myRow.cellIterator();
            Vector<String> cellStoreVector = new Vector<String>();
            while (cellIter.hasNext()) {
                XSSFCell myCell = (XSSFCell) cellIter.next();
                try {
                    cellvalue = myCell.getCachedFormulaResultType();
                } catch (Exception e) {
                }
                cellStoreVector.addElement(Integer.toString(cellvalue));
            }
            String secondcolumnValue = null;

            int i = 0;
            secondcolumnValue = cellStoreVector.get(i).toString();

            insertQuery(secondcolumnValue);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (fis != null) {
            fis.close();
        }
    }
    // showExelData(sheetData);
}

private static void insertQuery(String secondcolumnvalue) {
    System.out.println(secondcolumnvalue);
}

我应该返回像500、33这样的值,但我只返回0、0

完整的stacktrace将非常有用。发布的代码似乎与发布的stacktrace没有任何关系-您可以更正它们以匹配吗?为什么要保存计算单元格的类型,而不是值?