GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Validação de arquivo excel com apache POI

Tags: #<Tag:0x00007fa0068d6d70> #<Tag:0x00007fa0068d6af0>

Boa tarde pessoal,

preciso fazer uma validação ao fazer o upload de um arquivo excel.

ao tentar fazer a comparação eu recebo um erro, como posso resolver?

private int validaLinha(Row row) {
String pedidoExcel = “Numero”;

    Cell teste = row.getCell(new CellReference("C3").getCol());

    try{
        if (teste == null || teste.getCellType() == Cell.CELL_TYPE_BLANK)
            return 0;

        if (teste == pedidoExcel)
            return 1;

    }catch (Exception e){
        return -1;
    }

}

erro:
image

Editei a pergunta

A variável ‘teste’ não é uma String, por isso o erro na comparação.
Você precisa buscar um método da classe Cell, que retorne uma String que seja equivalente a String que você quer comparar.
Ou, você pode tratar o método toString(), para retornar a String equivalente. Nesse caso, a comparação ficaria algo do tipo if(teste.toString().equals(pedidoExcel))

Funcionou.

Só que agora surgiu outro problema, nao consigo chamar esse método criado, na parte que faz a validação:

public int validaLinha(Row row) {
        String pedidoExcel = "Numero";
        Cell colunaNumero = row.getCell(new CellReference("C3").getCol());


            if (colunaNumero == null) {
                return 0;

            }else
             if (pedidoExcel.equals(colunaNumero.getStringCellValue()))
                return 1;
        return 2; }

Método para validação:

private void validarForm(CartaoForm cartaoForm, BindingResult result) {
        
        int testando;
        
        testando = validaLinha(row);
                if (testando == 0){
            
            result.rejectValue("arquivo", "arquivo.vazio");
        }

apresenta este erro:

fiz de outra forma mas ainda assim nao consigo puxar esse método na parte de fazer a validação do arquivo, qual parâmetro tenho que inserir nele?

//