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?
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
Tipertuba
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
Tipertuba
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?