Java – Apache POI xlsx read, cell with # value – wrong unexpected cell type (5)
•
Java
Can you solve this problem?
I need to read each cell as a string value In this case, I use Apache POI lib And ways to normalize each cell:
String getNormilizedCell(Cell cell){ return new DataFormatter().formatCellValue(cell);}
But in In the xlsx file, I encountered such value:
|#N / A |#N / A | … | … | …
I received an error [unexpected cell type (5)]. I don't know how to deal with this problem I can't find the necessary information in Google
Solution
The dataformatter class only processes cells_ TYPE_ FORMULA,CELL_ TYPE_ NUMERIC,CELL_ TYPE_ STRING,CELL_ TYPE_ Boolean and cell_ TYPE_ BLANK. It does not handle cell_ TYPE_ Error, i.e. 5
You must first detect the wrong cell type, and then deal with it specifically. Refer to error cell value codes:
if (cell.getCellType() == Cell.CELL_TYPE_ERROR) { byte errorValue = cell.getErrorCellValue(); switch(errorValue) { case ERROR_DIV_0: return "#DIV/0!"; case ERROR_NA: return "#N/A"; case ERROR_NAME: return "#NAME?"; case ERROR_NULL: return "#NULL!"; case ERROR_NUM: return "#NUM!"; case ERROR_REF: return "#REF!"; case ERROR_VALUE: return "#VALUE!"; default: return "UnkNown error value: " + errorValue + "!"; } } else { return new DataFormatter().formatCellValue(cell); }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码