Estou lendo arquivo excel pleiteará e eu tenho uma condição como se columnType
é "data", em seguida, definir getCellDateValue
usando outra forma formatter
e formatCellValue
:
String valueOfColumn = StringUtils.equalsIgnoreCase(excelData.getColumnType(), "date")
? format(cell.getDateCellValue(), "dd/MM/yyyy")
: formatter.formatCellValue(cell);
excelData.setColumnValue(valueOfColumn );
É bom trabalhar para toda a coluna se ele está tendo um valor ou não, mas se a coluna data é nulo, ele está jogando NullPointerException
.
Por que é jogando essa exceção e como faço para me livrar dele?
É lá na documentação poi Apache -se que o método getDateCellValue()
que você está chamando retornos null
para cells.So em branco, mais provavelmente, o format()
método deve ser lançando exceção de ponteiro nulo por causa disso. Sempre que o seu código encontra um valor de célula vazia quando o tipo de coluna é 'date', ele retorna nulo que as format()
tentativas de método para o formato e lança exceção.
java.util.Date getDateCellValue ()
Obter o valor da célula como uma data.
Para strings que lançar uma exceção. Para as células em branco que retornar nulo.
Returns: o valor da célula como uma data
Assim, em breve, você precisa adicionar um cheque nulo em seu código para lidar com este caso.
String valueOfColumn;
if(cell != null ) {
if(StringUtils.equalsIgnoreCase(excelData.getColumnType(), "date") && cell.getDateCellValue() != null) {
valueOfColumn = format(cell.getDateCellValue(), "dd/MM/yyyy");
} else {
valueOfColumn = formatter.formatCellValue(cell)
}
excelData.setColumnValue(valueOfColumn );
}
else {
// handle else case for cell being null
}