[RESOLVIDO]java.lang.NumberFormatException

11 respostas
W

bom dia,

Estou fazendo um aplicativo para ler os valores de uma planilha e somar os mesmos, mas estou tendo erro ao fazer o parseInt de String para inteiro, para que eu possa somar os valores.

peço a ajudade vocês.

Segue o fragmento de código onde estou com problemas:

int linhas = sheet.getRows();
		int colunas = sheet.getColumns();
		
		for(int i = 0; i < linhas; i++)
		{
			
			for(int j = 0; j < colunas; j++)
			{	
				Cell celula = sheet.getCell(j, i);
				String celulas = celula.getContents();
				int valor =Integer.parseInt(celulas,10);
				System.out.print(valor);
				
				
			}
		}

E esse é a mensagem de erro:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
	at java.lang.Integer.parseInt(Integer.java:468)
	at leitor.le_planilha.main(le_planilha.java:41)

11 Respostas

lina

Oi,

O método celula.getContents() está retornando vazio ("").
Agora, por qual motivo já é outros 500… :shock:

Tchauzin!

Eduardo_Bregaida

wagner1308:
bom dia,

Estou fazendo um aplicativo para ler os valores de uma planilha e somar os mesmos, mas estou tendo erro ao fazer o parseInt de String para inteiro, para que eu possa somar os valores.

peço a ajudade vocês.

Segue o fragmento de código onde estou com problemas:

int linhas = sheet.getRows();
		int colunas = sheet.getColumns();
		
		for(int i = 0; i < linhas; i++)
		{
			
			for(int j = 0; j < colunas; j++)
			{	
				Cell celula = sheet.getCell(j, i);
				String celulas = celula.getContents();
				int valor =Integer.parseInt(celulas,10);
				System.out.print(valor);
				
				
			}
		}

E esse é a mensagem de erro:

Exception in thread "main" java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:468) at leitor.le_planilha.main(le_planilha.java:41)

Aqui está seu erro? Integer.parseInt(celulas,10);
debugou e viu o que está vindo no celulas?
como a Lina disse, esse cara “celula.getContents();” vem nulo, quando tenta fazer o parse ele passa “” e dá erro na conversão, verifique se realmente todos os valores são preenchidos para ver o porque que este cara está vazio. :smiley:

W

Oi lina,
Obrigado por sua ajuda, mas o metodo não retorna vazio não, ele retorna um string com os numeros que estão na planilha,
Eu não sei como foi o seu teste. Mas aqui eu vejo os valores que estão na planilha, só que é string e na hora do parseInt dá erro.

Mais uma vez obrigado!

Eduardo_Bregaida

wagner1308:
Oi lina,
Obrigado por sua ajuda, mas o metodo não retorna vazio não, ele retorna um string com os numeros que estão na planilha,
Eu não sei como foi o seu teste. Mas aqui eu vejo os valores que estão na planilha, só que é string e na hora do parseInt dá erro.

Mais uma obrigado!

Não foi o teste dela, foi a Stack: # Exception in thread “main” java.lang.NumberFormatException: For input string: “”

Basicamente está dizendo que String celulas = celula.getContents(); celulas não está recebendo o valor do celula.getContents() :smiley:

Eduardo_Bregaida

wagner1308:
Oi lina,
Obrigado por sua ajuda, mas o metodo não retorna vazio não, ele retorna um string com os numeros que estão na planilha,
Eu não sei como foi o seu teste. Mas aqui eu vejo os valores que estão na planilha, só que é string e na hora do parseInt dá erro.

Mais uma vez obrigado!

Mas vc não esta iterando sobre um for? em algum momento pode vir uma célula vazia lá 8)

lina

Oi,

A unica maneira de resolver isso (já que você não acredita) é usando Sysout.:

String celulas = celula.getContents();
System.out.println(celulas);

:smiley:

Eduardo_Bregaida
lina:
Oi,

A unica maneira de resolver isso (já que você não acredita) é usando Sysout.:

String celulas = celula.getContents();
System.out.println(celulas);

:D

Faz isso pra ver: depois cria um método pra ver se é nulo ou vazio essas coisas....
for(int i = 0; i < linhas; i++)
        {
            
            for(int j = 0; j < colunas; j++)
            {    
                Cell celula = sheet.getCell(j, i);
                if(celula!=null && celula.getContents()!=null && !celula.getContents().equal("")){
                String celulas = celula.getContents();
                int valor =Integer.parseInt(celulas,10);
                System.out.print(valor);
                }
                
                
            }
        }

8)

lina

Oi,

Apenas modificando um pouco na performace:
for(int i = 0; i < linhas; i++)
        {
            
            for(int j = 0; j < colunas; j++)
            {    
                Cell celula = sheet.getCell(j, i);  
                String celulas = celula.getContents();
                if (celulas != nul && !celulas.isEmpty()) {
                         int valor =Integer.parseInt(celulas,10);  
                         System.out.print(valor);  
                
                }
            }
        }

Tchauzin!

Eduardo_Bregaida
lina:
Oi, Apenas modificando um pouco na performace:
for(int i = 0; i < linhas; i++)
        {
            
            for(int j = 0; j < colunas; j++)
            {    
                Cell celula = sheet.getCell(j, i);  
                String celulas = celula.getContents();
                if (celulas != nul && !celulas.isEmpty()) {
                         int valor =Integer.parseInt(celulas,10);  
                         System.out.print(valor);  
                
                }
            }
        }

Tchauzin!

Deixa ele debugar um pko kkkk
Putz nem passou pela cabeça o isEmpty hehehe :P

W

Era isso!
Obrigado pessoal pela ajuda !!

Eduardo_Bregaida

wagner1308:
Era isso!
Obrigado pessoal pela ajuda !!

Que é isso, pra isso que o GUJ serve, só peço um favor, renomeia o título para:
[RESOLVIDO] java.lang.NumberFormatException

[]ssss

Criado 24 de setembro de 2010
Ultima resposta 24 de set. de 2010
Respostas 11
Participantes 3