POI + BigDecimal

4 respostas
T

Olá Pessoal,
eu tenho que escrever um arquivo XLS e estou usando POI para tal.
Porém, tenho valores armazenados em BigDecimal e preciso escrevê-los na planilha.
Para definir o valor só existe o método .setCellValue(double x). Porém, o valor que tenho armazenado não pode ser armazenado em double pois preciso de várias casas decimais e o double não atende as minhas necessidades. Eu tentei armazenar como string, mas ai na planilha fica com o erro “Number stored as text”, e não pega a formatação que queria… Alguém sugere algo?

Obrigado!

4 Respostas

dreampeppers99

Tipertuba:
Olá Pessoal,
eu tenho que escrever um arquivo XLS e estou usando POI para tal.
Porém, tenho valores armazenados em BigDecimal e preciso escrevê-los na planilha.
Para definir o valor só existe o método .setCellValue(double x). Porém, o valor que tenho armazenado não pode ser armazenado em double pois preciso de várias casas decimais e o double não atende as minhas necessidades. Eu tentei armazenar como string, mas ai na planilha fica com o erro “Number stored as text”, e não pega a formatação que queria… Alguém sugere algo?
Obrigado!

O BigDecimal possui um método doubleValue() que já converte para double o valro de seu BigDecimal.

obj.setCellValue(bigdecimal.doubleValue());
T

Hummm obrigado! vou ver se uso isto.
De qualquer forma, usando double eu vou perder a precisão, certo?
Tem um campo que armazena taxa, e pode guardar um campo com 14 digitos à esquerda, e 14 decimais!

dreampeppers99

Tipertuba:
Hummm obrigado! vou ver se uso isto.
De qualquer forma, usando double eu vou perder a precisão, certo?

Você vai usar o “double” só para mostrar e será a mesma precisão do BigDecimal. Ficou meio complicado, assim trabalhe com o BigDecimal e quando for montar a planilha ou mostrar pode usar o double, use para apresentar mas não use para calcular. ¬¬

T

Bom, quanto isso meu problema resolveu…
Eu to tendo outro problema que quando eu abro a planilha, ele fala que “File error.Some number formats may have been lost.”
Eu tava criando um style e um data format para cada célula e achei que esse era o problema. Agora eu estou reutilizando os formatos e etc, mas o erro continua. Tem ideia do que pode ser?

ABracos e obrigado mais uma vez!

Criado 5 de maio de 2011
Ultima resposta 5 de mai. de 2011
Respostas 4
Participantes 2