Data excel para java

5 respostas
P

Oi,
Estou utilizando a API jxl, leio da planilha excel duas colunas, uma com data e outra com valor para atualizar meu banco, porém qdo pego a data do excel no formato string:
String stringdata = sheet.getCell(x,y).getContents();
a data que no excel está no formato dd/mm/yyyy vai para a variável acima da seguinte forma dd/mm/yy.Nao sei pq isso acontece!!!

Agora outra coisa quando pego a data com o código:

if (Data.getType() == CellType.DATE){
                DateCell dc = (DateCell) Data;
                data = dc.getDate();

             java.sql.Date sqlDate = new java.sql.Date(dt.getTime());
            }

a minha primeira data q eh 02/01/1998, vai para a variável sql com valor 01/01/1998, e segue com os valores subsequentes, ignorando os valores de data do excel!!!
Se alguém puder me ajudar ficarei muito agradecido!

abs!

5 Respostas

D

Desculpa voltar em um topico velho, mas visto que nao achei resposta e esse topico nao foi respondido, eu preferi voltar nesse topico. Alguém sabe como resolver? E’ estranho pois no file excel esta um texto no formato dd/mm/yyyy e qdo faço getContents ele me devolve dd/mm/yy.

D

Resolvi. O problema é que qdo vc escreve no excel uma data, automaticamente o formato da célula se transforma em formato data. Sendo assim eu primeiro testo se a célula era uma data, se é data eu pego a data (em formato java). Se a célula nao esta em um formato data ai eu espero que a data esteje escrito no formato dd/mm/yyyy e transformo em uma data java.

P

Ola cara tudo bom???

como vc converteu para data java??

estou com o mesmo problema…
quando jogo no banco de dados ele salva com a data de um dia anterior… se puder responder eu agradeço

estou pegando a data assim

DateCell ch = (DateCell) celH; colunaH = ch.getDate();

e estou salvando no BD assim

li.setDate(X, new java.sql.Date((colunaH).getTime()));
D
Cell celldata  = null;
                celldataF = sheet.getCell(6,r);
                Date data = convertToDateOracle(celldataFattura);

No meu caso eu converti em um formato de data oracle

private oracle.jbo.domain.Date convertToDateOracle(Cell cellValue){
        String stringDate = null;
        
        if (cellValue != null && "".equals(cellValue))
            return null;
        
        java.text.SimpleDateFormat systemDateFormat = new java.text.SimpleDateFormat ("yyyy-MM-dd");
        systemDateFormat.setLenient(false);
        java.util.Date dateJavaTemp = null;
        Date dateOracleChanged = null;

        try {
            if (cellValue.getType() == CellType.DATE){
                DateCell valueDate = (DateCell)cellValue;
                dateJavaTemp = valueDate.getDate();
                stringDate = systemDateFormat.format(dateJavaTemp);
                dateOracleChanged = new Date(stringDate);
            }
            else{
                dateOracleChanged = this.convertToDateOracle(cellValue.getContents());
            }
            return dateOracleChanged;
        } catch (OAException e) {
            OAException errorMessage = new OAException(e.getMessage());
            throw errorMessage;
        }            
    }

Tenta adaptar p oq vc precisa.

P

beleza… vou tentar aplicar essa solução… valeu

Criado 8 de fevereiro de 2007
Ultima resposta 4 de out. de 2012
Respostas 5
Participantes 3