Pegar valor no excel com POI

2 respostas
K

Estou com um pequeno probleminha.
Preciso pegar os números das células de um arquivo excel e reescrever para um arquivo txt.
Consigo pegar os números… mas todos bem como no formato do excel… tipo: 6.9193901E7

Gostaria de pegar o número do jeito que é mostrado nas células… tem como?
tipo… gostaria de recuperar o numero como: 69193901

Alguém pode me ajudar?

2 Respostas

M

Vc poderia mostrar o método que faz esta captura pra que eu possa dar uma analisada?

Guilherme_Gomes

Eu tive esse mesmo problema, quando o número da célula passa o limite do double acontece isso (bibliotecas free ^^)

Bom, fiz uma gambiarra que funciona (não se assuste com a palavra).

O processo que fiz é de pegar a variavel em String (sai com esse E de exponencial) e fiz ele multiplicar o que vem antes do “E” por
10^(número depois do “E”), por exemplo:

6.9193901E7 = 6.9193901 * 10^7 = 69193901;

Usando BigDecimal para precisão… Segue o código:

try{
				processo = String.valueOf(cell2.getStringCellValue());
				}catch(Exception e){
					try{
						processo = String.valueOf(cell2.getNumericCellValue());
						if(processo.contains("E")){
							String num = processo.replaceAll("E[0-9]*", "");
							BigDecimal bd = new BigDecimal(num);
							String exp = processo.replaceAll(".*E", "");
							int many = Integer.parseInt(exp);
							String temp = "1";
							for (int i =0; i<many;i++){
								temp +="0";
							}
							bd = bd.multiply(new BigDecimal(temp));
							processo = bd.toString();
							processo = processo.replaceAll("\\.0*", "");
						}
					}catch(Exception e1){}
				}
Criado 11 de novembro de 2007
Ultima resposta 12 de nov. de 2007
Respostas 2
Participantes 3