Problema ao ler arquivo EXCEL

Olá, estou fazendo uma classe que lê um XLS, quando eu leio Strings não tenho problema algum, porém quando eu tento ler numeros, int ou double, aparece uma data doida e dá erro, por que um int não suporta por exemplo “31/07/1983 00:00:00”

O excel é o seguinte, eu faço algumas movimentações (produtos) no sistema, e através do iReport, com Jasper Reports, eu gero um Excel, com todos os produtos, e ao lado uma coluna em branco para alguem digitar a quantidade e o valor de cada produto, depois que estiver tudo preenchido, faz o upload deste arquivo para inputação dos dados no sistema.

Até a parte do Upload está tudo as mil maravilhas, mas quando eu vou ler as quantidades, e os valores do Excel, vem uma data, quando leio a descrição dos produtos, a String vem perfeita!

Não vou postar o código inteiro por que está muito extenso, e está “quase” todo correto, vou colocar partes dele.

ArrayList cotacao = new ArrayList();
HSSFSheet sheet = wb.getSheetAt(0);       // first sheet
HashMap mapeamento = obterMapeamentoCampos(acaoExecucao);

            Integer valorItem;
	    Integer valorQuantidade;
	    Integer valorFamilia;
	    Integer valorMaterial;
	    Integer valorEspecificacao;
	    Integer valorQtDisponivel;
	    Integer valorCustoUnitario;
	    Integer valorCustoTotal;

             int inicioDados = obterLinhaInicialRegistros(this.INCLUIR_PRODUTOS);
	    
	     for (int i= inicioDados; i <= sheet.getLastRowNum(); i++){
	        //Obter cada registro
		    HSSFRow row = sheet.getRow(i);        

		    
		    /*
		     * Obter a posição das informações nas células.
		     */
		    
		    valorItem = obterPosicaoCampo(mapeamento, "Item");
		    valorQuantidade = obterPosicaoCampo(mapeamento, "Qtd");
		    valorFamilia = obterPosicaoCampo(mapeamento, "Familia");
		    valorMaterial = obterPosicaoCampo(mapeamento, "Material");
		    valorEspecificacao = obterPosicaoCampo(mapeamento, "Especificacao");
		    valorQtDisponivel = obterPosicaoCampo(mapeamento, "QtDisponivel");
		    valorCustoUnitario = obterPosicaoCampo(mapeamento, "CustoUnitario");
		    valorCustoTotal = obterPosicaoCampo(mapeamento, "CustoTotal");
		
		    
		    /*
		     * Declaração das células que serão lidas.
		     */
		    HSSFCell item			= null;
		    HSSFCell quantidade		= null;
		    HSSFCell familia		= null;
		    HSSFCell material		= null;
		    HSSFCell especificacao	= null;
		    HSSFCell qtDisponivel	= null;
		    HSSFCell custoUnitario	= null;
		    HSSFCell custoTotal		= null;
		    
		    
		    
		    
		    /*
		     * Ler o conteúdo das células
		     */
		    
		    if ( valorItem != null){
		        item = row.getCell ( valorItem.shortValue() );
		    }
		    
		    if (valorQuantidade != null){
		    	quantidade = row.getCell(valorQuantidade.shortValue());
		    }
		    
		    if (valorFamilia != null){
		    	familia = row.getCell(valorFamilia.shortValue());
		    }
		    
		    if (valorMaterial != null){
		    	material = row.getCell(valorMaterial.shortValue());
		    }
		    
		    if (valorEspecificacao != null){
		    	especificacao = row.getCell(valorEspecificacao.shortValue());
		    }
		    
		    if (valorQtDisponivel != null){
		    	qtDisponivel = row.getCell(valorQtDisponivel.shortValue());
		    }
		    
		    if (valorCustoUnitario != null){
		    	custoUnitario = row.getCell(valorCustoUnitario.shortValue());
		    }
		    
		    if (valorCustoTotal != null){
		    	custoTotal = row.getCell(valorCustoTotal.shortValue());
		    }
		    
		    
		    CotacaoMatOdontoExcelForm linha = new CotacaoMatOdontoExcelForm();
		    
		    if(item != null){
		    	converteToStringValue(item);
		    	linha.setItem(Integer.parseInt(item.getStringCellValue().trim())); //a variavel item, esta retornando "01/01/1900 00:00:00", o certo seria 1
		    }
		    
		    if(quantidade != null){
		    	converteToStringValue(quantidade);
		    	linha.setQtde(Integer.parseInt(quantidade.getStringCellValue().trim())); //a variavel qtDisponivel, esta retornando "08/01/1900 00:00:00", o certo seria 50
		    }
		    
		    if(familia != null){
		    	converteToStringValue(familia);
		    	linha.setFamilia(familia.getStringCellValue().trim());
		    }
		    
		    if(material != null){
		    	converteToStringValue(material);
		    	linha.setMaterial(material.getStringCellValue().trim());
		    }
		    
		    if(especificacao != null){
		    	converteToStringValue(especificacao);
		    	linha.setEspecificacao(especificacao.getStringCellValue().trim());
		    }
		    
		    
		    if(qtDisponivel != null){
		    	converteToStringValue(qtDisponivel);
		    	linha.setQtDisponivel(Integer.parseInt(qtDisponivel.getStringCellValue().trim())); //a variavel qtDisponivel, esta retornando "31/12/1899 00:00:00", o certo seria 15
		    }
		    
		    if(custoUnitario != null){
		    	converteToStringValue(custoUnitario);
		    	linha.setCustoUnitario(Double.parseDouble(custoUnitario.getStringCellValue().trim()));
		    }
		    
		    if(custoTotal != null){
		    	converteToStringValue(custoTotal);
		    	linha.setCustoTotal(Double.parseDouble(custoTotal.getStringCellValue().trim()));
		    }
 cotacao.add(linha);
  }
	    
	    
	    
return cotacao;
	    

O que eu to fazendo de errado???

A pergunta parece idiota, mas vc verificou a formatação do campo que vem data no excel? Se ele estiver configurado para date pode ser o problema.

Sim senhor!
No iReport, quando eu estava preparando os campos, deixei tudo como String, e o Excel entende como campo de texto, tentei até fazer umas formulas no xls gerado pelo sistema mas nao deu de primeira, tive que formatar as células pra depois conseguir fazer fórmulas.