В моем коде я проверяю тип ячейки, и если тип ячейки является формулой, тогда я пытаюсь получить кешированное значение, например:POI-XSSF: тип ячейки FORMULA, но не удалось получить cachedResultType
else if(cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA){
System.out.println("formula result type:" +cell.getCachedFormulaResultType());
switch(cell.getCachedFormulaResultType()){
case XSSFCell.CELL_TYPE_NUMERIC:
....
....
break;
Он отлично работает для некоторых клеток, но в одной из ячеек, я получаю НЕЗАКОННОГО ГОСУДАРСТВЕННАЯ ИСКЛЮЧЕНИЕ:
java.lang.IllegalStateException: Only formula cells have cached results
Я не в состоянии выяснить причину ошибки. Я не использую cell.getCachedFormulaResult()
вне этого else if
, и даже это работает для всех предшествующих клеток (которые имеют ту же самую формулу)
Какую версию Apache POI вы используете? И если это не последнее, что происходит при обновлении? – Gagravarr
Также, пожалуйста, добавьте полный стек, чтобы мы увидели, где именно выбрано исключение. – centic