Jakarta POI método celTel.getStringCellValue();

Bom dia a todos. O seguinte método abaixo busca um numero de telefone no Excel como faço pra jogar ele em uma String no eclipse ta dando erro :cry:

String tel = celTel.getStringCellValue();celTel.getStringCellValue();

acho que so tem celTel.getNumericCellValue(); que retorna um double neh?

[quote=evertonsilvagomesjava]Bom dia a todos. O seguinte método abaixo busca um numero de telefone no Excel como faço pra jogar ele em uma String no eclipse ta dando erro :cry:

String tel = celTel.getStringCellValue();celTel.getStringCellValue();

[/quote]

qual o erro que esta dando??

as celulas do excel tem um “tipo”, se você buscar o conteudo de um tipo enquanto na verdade ele é de outro da exception…

da para você verificar o tipo da celula assim (só um exemplo:

String xxx = null;
if (suaCelula.getCellType() == HSSFCell.CELL_TYPE_STRING)
    xxx = suaCelula.getStringCellValue();
else if (suaCelula..getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
    xxx = String.valueof(suaCelula..getNumericCellValue());
else if ... //e por ai vai... usa o auto complete da sua ide por exemplo ou a documentação para ver os tipos existentes

provavelmente o seu problema é isso, ou algum null pointer ou algo do tipo… te aconselho a debugar a sua aplicação direitinho e ver oq ue esta acontecendo.

da uma olhada na documentação da api que você esta usando… (primeiro resultado no google procurando por apache+poi+docs)

la você ve todos os tipos nas constantes herdadas da superclasse :wink:

bons estudos

opa e ai amigo, estou começando usar essa API agora…então ele pega o valor numeric e retorna um double depois eu fiz um casting pra long aqui e funcionou…acho que nao tem outra opçao…

isso vai funcionar dependendo do formato que o dado esta na coluna do excel, por exemplo, se estiver com “12345678”, o tipo fica como numerico mesmo… mais supondo que essa tabela ai seja preenchida por pessoas, o processo fica passivel a erros…

você pegando pelo valor numeric funciona, até vir um cara muito legal e preencher com algo do tipo “0XX 12345678” ou “1234-5678”… isso fará dar exceção (provavelmente a mesma que esta dando ai, uma exceção de algo relativo a tipo incompativel… falo isso por experiencia propria).

por isso que te aconselho, a primeiro verificar o tipo da celula, para depois ler no formato que ela estiver e transformar (via cast se for o caso) para o formato que você for usar… assim seu software fica menos dependente de erro humano…

veja o exemplo que te passei…

puta merda cara, vc deu um tapa na cara do papa agora kkk, fino de mais agora entendi o pq do “instanceof” generico ali kkk vlw amigo!!!