[RESOLVIDO]java.lang.NumberFormatException

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)

Oi,

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

Tchauzin!

[quote=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) [/quote]

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:

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!

[quote=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![/quote]

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:

[quote=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![/quote]

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

Oi,

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

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

:smiley:

[quote=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: [/quote]

Faz isso pra ver: depois cria um método pra ver se é nulo ou vazio essas coisas…

[code]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);
            }
            
            
        }
    }[/code]

Oi,

Apenas modificando um pouco na performace:

[code]
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);  
            
            }
        }
    }[/code]

Tchauzin!

[quote=lina]Oi,

Apenas modificando um pouco na performace:

[code]
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);  
            
            }
        }
    }[/code]

Tchauzin![/quote]

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

Era isso!
Obrigado pessoal pela ajuda !!

[quote=wagner1308]Era isso!
Obrigado pessoal pela ajuda !![/quote]

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

[]ssss