GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Ler de planilha no Excel e passar para Banco de Dados

Estou com dificuldade para ler uma planilha no Excel e passar os dados lidos para um banco de dados.
Alguém já fez isso?
Grato,

Dá uma olhada nesse projeto da jakarta que é para manipulação de documentos da MS

http://jakarta.apache.org/poi

Aqui um artigo que explica como usá-lo

Achei muito interessante o que vc mandou, se não for abusar vc sabe de algum arquivo que mostre como “converter” o que vc leu no arquivo para uma select por exemplo?

Valeu.

Se vc quiser poderia dar uma olhada tb no:
http://www.andykhan.com/jexcelapi/tutorial.html

as vezes pode ser um pouco mais fácil de usar do que o POI, mas com qualquer um dos dois acredito que vc resolve seu problema.

Quando vc ler os conteúdos das células, vc pode montar seu SQL daí,
por ex:

     /* pega o arkivo do Excel */
     Workbook workbook = Workbook.getWorkbook(new File("myfile.xls"));  
     
     /* pega a primeira planilha dentro do arquivo XLS */
     Sheet sheet = workbook.getSheet(0); 
     
     /* pega os valores das célular como se numa matriz */
     Cell a1 = sheet.getCell(0,0);
     Cell b2 = sheet.getCell(1,1);
     Cell c2 = sheet.getCell(2,1);

     /* pega os conteúdos das células */
     String stringa1 = a1.getContents();
     String stringb2 = b2.getContents();
     String stringc2 = c2.getContents();
     
     /* agora é só montar seu SQL*/
    String sql = "INSERT INTO MinhaTabela(col1,col2,col3) "+
                      "VALUES('"+stringa1+"','"+stringb2+"',"+stringc2+"')";
    /*execute esse SQL agora (por JDBC por ex.) */

esse exemplo q passei seria usando a Java Excel API (e não a POI), mas a idéia de ler os dados e montar o SQL é a mesma… é uma sugestão.
Também é possível se conectar por ODBC diretamente no XLS (Excel) tb e manipulá-lo com SQL daí…

espero ter ajudado…
um abraço

1 Curtida

Cara agora pintou uma dúvida que dá até vergonha, estou testando o seu exemplo e procurei por todo o material mas tem que fazer alguma coisa para por exemplo “Instalar” essa API, pois uso o Netbeans e dá um monte de erro aí pensei que tivesse que instalar ela de alguma forma para a gente dar um import como fazemos com outras API´s do Java. Vc sabe onde encontro documentação de como fazer isso?

Hehe… Novato é soda.

Achei como usar, é só adicionar o jar na minha lib.

Valeu.

1 Curtida

Uma solução que, a principio é sebosa, mas que dependendo do seu problema pode ser a mais simples é você importar o xls no Access e depois exportar para um mdb. Depois é só acessá-lo como um banco de dados normal, via ODBC.

Estou usando o seguinte código para ler em um arquivo do Excel e fazer o insert no banco, contudo ele busca um valor por vez, como na minha necessidade a quantidade de linhas da planilha é variável tem como eu fazer ele pegar de forma mais automática a quantidade total das linhas para fazer o insert no banco?
Olha o código:

[code]package controleweb;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

/**
*

  • @author petter
    */
    public class Main {

    private static Connection conn;

    /** Creates a new instance of Main */
    public static void main(String[] args ) throws IOException, BiffException,
    ClassNotFoundException, SQLException {

    /* pega o arquiivo do Excel */
    Workbook workbook = Workbook.getWorkbook(new File(“enviados.xls”));

    /* pega a primeira planilha dentro do arquivo XLS */
    Sheet sheet = workbook.getSheet(0);

    /* pega os valores das célular como se numa matriz */
    Cell a1 = sheet.getCell(0,0);
    Cell b2 = sheet.getCell(1,1);
    Cell c2 = sheet.getCell(2,1);

    /* pega os conteúdos das células */
    String stringa1 = a1.getContents();
    String stringb2 = b2.getContents();
    String stringc2 = c2.getContents();

    /String sql = “INSERT INTO MinhaTabela(col1,col2,col3) “+
    “VALUES(’”+stringa1+”’,’”+stringb2+"’,"+stringc2+"’)";
    /

    /Executa o insert para inserir os dados no banco de testes MySQL/
    Class.forName(“com.mysql.jdbc.Driver”);
    Connection conn = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/jar”, “user”, “senha”);

    PreparedStatement ps = conn.prepareStatement(“INSERT INTO Teste(string1,string2,titulo) “+
    “VALUES(’”+stringa1+”’,’”+stringb2+"’,’"+stringc2+"’)");

    ps.executeUpdate();
    ps.close();

    }

}[/code]

Pessoal, dando uma modificada no meu último Post, o código abaixo está com um erro quando chego na última linha com informação na minha planilha. Alguém pode me ajudar a tratar esse erro?

[code]package controleweb;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import jxl.Cell;
import jxl.DateCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

/**
*

  • @author petter
    */
    public class Main {

    private static Connection conn;
    private static int i = 1;
    private static Date datea1;
    private static String stringb2;
    private static double intc3;
    private static String stringd4;
    private static String stringe5;
    private static String stringf6;
    private static String stringg7;
    private static String stringh8;
    private static String stringi9;
    private static String stringj10;

    /** Creates a new instance of Main */
    public static void main(String[] args ) throws IOException, BiffException,
    ClassNotFoundException, SQLException {

    /* pega o arquiivo do Excel */
    Workbook workbook = Workbook.getWorkbook(new File(“enviados.xls”));

    /* pega a primeira planilha dentro do arquivo XLS */
    Sheet sheet = workbook.getSheet(0);

    do{
    /* pega os valores das células como se numa matriz */
    Cell a1 = sheet.getCell(0,i);
    Cell b2 = sheet.getCell(1,i);
    Cell c3 = sheet.getCell(2,i);
    Cell d4 = sheet.getCell(3,i);
    Cell e5 = sheet.getCell(4,i);
    Cell f6 = sheet.getCell(5,i);
    Cell g7 = sheet.getCell(6,i);
    Cell h8 = sheet.getCell(7,i);
    Cell i9 = sheet.getCell(8,i);
    Cell j10 = sheet.getCell(9,i);

    /* pega os conteúdos das células */
    DateCell dc = (DateCell) a1;
    datea1 = dc.getDate();

    stringb2 = b2.getContents();

    NumberCell nc = (NumberCell) c3;
    intc3 = nc.getValue();

    stringd4 = d4.getContents();
    stringe5 = e5.getContents();
    stringf6 = f6.getContents();
    stringg7 = g7.getContents();
    stringh8 = h8.getContents();
    stringi9 = i9.getContents();
    stringj10 = j10.getContents();

    //Auto incremento para pular de linhas na planilha do Excell
    i++;
    }while(stringg7 != null);

    /Executa o insert para inserir os dados no banco de testes MySQL/
    Class.forName(“com.mysql.jdbc.Driver”);

    Connection conn = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/jar”,
    “user”,
    “senha”);

    PreparedStatement ps = conn.prepareStatement(“INSERT INTO Teste(data,hora,tamanho,ip,” +
    " string1,string2,de," +
    " para,cc,titulo) “+
    “VALUES(’”+datea1+”’,’"+stringb2+"’,’"+intc3+"’,’"+stringd4+"’,’"+stringe5+"’" +
    " ,’"+stringf6+"’,’"+stringg7+"’,’"+stringh8+"’,’"+stringi9+"’,’"+stringj10+"’)");

    ps.executeUpdate();
    ps.close();

    workbook.close();
    }
    }
    [/code]

pelo que eu vi na API, tem um método em Sheet q retorna a quantidade de linhas daquela planilha. Daí é só fazer um FOR que vai inserindo um a um… tem tb um método que retorna todas as células de uma determinada linha, daí fica mais fácil pra manipular.
não testei mas acredito que dê certo, deve ficar algo assim:

/*Database */
      Class.forName("com.mysql.jdbc.Driver");
      Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jar", "user", "senha");	  

      /* pega a primeira planilha dentro do arquivo XLS */
      Sheet sheet = workbook.getSheet(0); 
       
       int linhas = sheet.getRows(); //numero de linhas na planilha
       Cell[] celulas;				 //array que terá as células da linha
       StringBuffer sql;
       for(int i=0;i<linhas;i++)     //para cada linha na planilha
       {
    	   sql = new StringBuffer("");
    	   sql.append("INSERT INTO Tabela(col1,col2,col3) "); //monta o SQL
    	   sql.append("VALUES(");
    	   celulas = sheet.getRow(i); //monta um array com todas as células daquela linha
    	   for(int j=0;j<celulas.length();j++) //para cada célula na linha
    	   {
    		   sqlBuffer.append("'"+celulas[j].getContents()+"'"); //pega o valor da célula e coloca no SQL
    		   if (j!=celulas.length()-1) //não adiciona a vírgula no último valor do sql
    			   sqlBuffer.append(","); 
    	   }
    	   sql.append(")");
    	   
    	   System.out.println("SQL a ser executado: "+sql); //SO PRA VC VER O QUE TÁ EXECUTANDO NOS TESTES
    	   
    	   conn.executeUpdate(sql.toString()); //executa o INSERT, como está dentro do FOR irá executar para toda linha
    	   									   //altere à vontade a forma de executar o SQL.
       }
       conn.close();

foi o que escrevi aqui rapidinho deve ter vários errinhos mas o
importante é pegar a idéia principal…

qualquer coisa estamos ae,
abraços>

Cara valeu mesmo, peguei a sua idéia e agreguei ao que eu já tinha feito e agora tá funcionando perfeito, para constar como efeito de como foi implementada a solução segue o código:

package controleweb;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import jxl.Cell;
import jxl.DateCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;



/**
 *
 * @author petter
 */
public class Main {
    
    private static Connection conn;
    private static int i = 0;
    private static String stringa1;
    private static String stringb2;
    private static double intc3;
    private static String stringd4;
    private static String stringe5;
    private static String stringf6;
    private static String stringg7;
    private static String stringh8;
    private static String stringi9;
    private static String stringj10;
    private static String stringl11;
  
    /** Creates a new instance of Main */
    public static void main(String[] args ) throws IOException, BiffException, 
                                                   ClassNotFoundException, SQLException {
     
     //Conexão com o banco de dados
     Class.forName("com.mysql.jdbc.Driver");
     Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jar",
                                                                "user",
                                                                "senha");  
     
      /* pega o arquiivo do Excel */
      Workbook workbook = Workbook.getWorkbook(new File("enviados.xls"));  
      
      /* pega a primeira planilha dentro do arquivo XLS */
      Sheet sheet = workbook.getSheet(0); 
     
      //Pega a quantidade de linhas da planilha
      int linhas = sheet.getRows();
      
      
      for(i = 0; i < linhas; i++){
      /* pega os valores das células como se numa matriz */
      Cell a1 = sheet.getCell(0,i);
      Cell b2 = sheet.getCell(1,i);
      Cell c3 = sheet.getCell(2,i);
      Cell d4 = sheet.getCell(3,i);
      Cell e5 = sheet.getCell(4,i);
      Cell f6 = sheet.getCell(5,i);
      Cell g7 = sheet.getCell(6,i);
      Cell h8 = sheet.getCell(7,i);
      Cell i9 = sheet.getCell(8,i);
      Cell j10 = sheet.getCell(9,i);
      Cell l11 = sheet.getCell(10,i);

      /* pega os conteúdos das células */
      stringa1 = a1.getContents();
      stringb2 = b2.getContents();
      
      NumberCell nc = (NumberCell) c3;
      intc3 = nc.getValue();
      
      stringd4 = d4.getContents();
      stringe5 = e5.getContents();
      stringf6 = f6.getContents();
      stringg7 = g7.getContents();
      stringh8 = h8.getContents();
      stringi9 = i9.getContents();
      stringj10 = j10.getContents();
      stringl11 = l11.getContents();
      
     /*Executa o insert para inserir os dados no banco de testes MySQL*/     
     PreparedStatement ps = conn.prepareStatement("INSERT INTO Teste(data,hora,tamanho,ip," +
          "                                                       string1,string2,de," +
          "                                                       para,cc,titulo,anexo) "+
             "VALUES('"+stringa1+"','"+stringb2+"','"+intc3+"','"+stringd4+"','"+stringe5+"'" +
          "         ,'"+stringf6+"','"+stringg7+"','"+stringh8+"','"+stringi9+"','"+stringj10+"'" +
          "         ,'"+stringl11+"')");
         
     ps.executeUpdate(); 
     }
     workbook.close();
    }    
}

:smiley: :lol: :smiley: :lol: :smiley: :lol:

Parabéns pela iniciativa amigos,

Muito obrigado.

Eu tentei usar a do Jakarta pois estou precisando converter xls de office mais avancados,

Bom, após apanhar uma madrugada inteira e metade do dia seguinte finalmente consegui executar o exemplo que encontrei no www.onjava.com.

Valeu !!!

Olá,

Primeiro queria agradecer ao exemplo de inserir a planilha no excel no banco de dados, eu usei o codigo pra minha monografia, porem não vou inserir no banco de dados, vou usar os dados em uma formula chamada EWMA, que calcula derivativos, porem a formula somente aceita dados do tipo double ou float. Preciso urgentemente converter esses dados em double ou float pra colocar em minha monografia q é pra Dezembro/2007 e se eu resolver esse problema, tenho outro, vou ter q plotar um grafico, to pensando em usar a API jFreeChart.

C:\Documents and Settings\NTI\Meus documentos\Anderson\Monografia\src\EWMA.java

1 import java.io.File;
2 import java.util.;
3 //import jxl.
;
4 import java.lang.;
5 import java.io.File;
6 import java.io.IOException;
7 import java.sql.Connection;
8 import java.sql.DriverManager;
9 import java.sql.PreparedStatement;
10 import java.sql.SQLException;
11 import java.util.Date;
12 import javax.swing.JOptionPane;
13 import jxl.Cell;
14 import jxl.CellType;
15 import jxl.DateCell;
16 import jxl.NumberCell;
17 import jxl.Sheet;
18 import jxl.Workbook;
19 import jxl.read.biff.BiffException;
20 import javax.swing.
;
21
22
23 public class EWMA{
24
25 private static Connection conn;
26 private static int i = 0;
27 private static int j = 0;
28 private static String stringa1;
29 private static String stringb2;
30 private static double intc3;
31 private static double lambida;
32 private static double lambida2;
33 private static double ewma;
34 private static double a;
35 private static String titulo;
36 private static String stringd4;
37 private static String stringe5;
38 private static String stringf6;
39 private static String stringg7;
40 private static String stringh8;
41 private static String stringi9;
42 private static String stringj10;
43 private static String stringk11;
44 private static String stringl12;
45 private static String stringm13;
46 private static String stringn14;
47
48
49 /** Creates a new instance of Main /
50 public static void main(String[] args ) throws IOException, BiffException
51 //throws IOException, BiffException,
52 /ClassNotFoundException, SQLException /
53 {
54 ewma();
55 //vet = new Vector();
56
57 //Conexão com o banco de dados
58 //Class.forName(“com.mysql.jdbc.Driver”);
59 //Connection conn = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/jar”,
60 // “user”,
61 // “senha”);
62
63 /
pega o arquiivo do Excel OPÇÃO 1
/ // não achou o arquivo
64 //Workbook workbook = Workbook.getWorkbook(new File(“myfile.xls”));
65
66 }
67
68 public static void ewma() throws IOException, BiffException{
69
70 JOptionPane.showMessageDialog(null,“Lendo o arquivo …”);
71
72 // pega o arquiivo do Excel
73 String filename = “c:/1995_completo_soja.xls”;
74 File f= new File(filename);
75 Workbook planilha = Workbook.getWorkbook(f);
76 // Mostra o nome do arquivo lido
77 JOptionPane.showMessageDialog(null,"Leu o arquivo " +f);
78
79 /
pega a primeira planilha dentro do arquivo XLS /
80 Sheet sheet = planilha.getSheet(0);
81
82 //Pega a quantidade de linhas da planilha
83 int linhas = sheet.getRows();
84 // Mostra a quantidad de linhas
85 JOptionPane.showMessageDialog(null,"Quantidade de linhas: " +linhas);
86 //Pega a quantidade de colunas da planilha
87 int colunas = sheet.getColumns();
88 // Mostra a quantidade de colunas
89 JOptionPane.showMessageDialog(null,"Quantidade de colunas: " +colunas);
90
91 for(i = 0; i < linhas; i++){ // pega as linhas
92 for(j = 0; j < colunas; i++){ // pega as colunas
93
94 /
pega os valores das células como se numa matriz /
95
96 //Cell a1 = sheet.getCell(0,i);
97 //Cell b2 = sheet.getCell(1,i);
98 //Cell c3 = sheet.getCell(2,i);
99 //Cell d4 = sheet.getCell(3,i);
100 //Cell e5 = sheet.getCell(4,i);
101 //Cell f6 = sheet.getCell(5,i);
102 //Cell g7 = sheet.getCell(6,i);
103 //Cell h8 = sheet.getCell(7,i);
104 //Cell i9 = sheet.getCell(8,i);
105 //Cell j10 = sheet.getCell(9,i);
106
107 // pega as celulas da coluna, pulando a 1º linha do titulo
108 Cell k11 = sheet.getCell(10,i+1);
109
110 /

111 if (k11.getType() == CellType.NUMBER)
112 {
113 NumberCell fc = (NumberCell)k11;
114 stringk11 = fc.getNumberFormat();
115 }
116 /
117
118
119 //Cell l12 = sheet.getCell(11,i);
120 //Cell m13 = sheet.getCell(12,i);
121 //Cell n14 = sheet.getCell(13,i);
122
123
124
125 /
pega os conteúdos das células */
126
127 //stringa1 = a1.getContents(); // Pega todo o conteudo da coluna A
128 //stringb2 = b2.getContents(); // Pega todo o conteudo da coluna B
129 //stringd4 = d4.getContents(); // Pega todo o conteudo da coluna C
130 //stringe5 = e5.getContents(); // Pega todo o conteudo da coluna D
131 //stringf6 = f6.getContents(); // Pega todo o conteudo da coluna E
132 //stringg7 = g7.getContents(); // Pega todo o conteudo da coluna F
133 //stringh8 = h8.getContents(); // Pega todo o conteudo da coluna G
134 //stringi9 = i9.getContents(); // Pega todo o conteudo da coluna H
135 //stringj10 = j10.getContents(); // Pega todo o conteudo da coluna I
136
137
138 // Pega todo o conteudo da coluna J
139
140 stringk11 = k11.getContents();
141 // stringj10 = Float.parseFloat(j10.getContents());
142
143
144 //stringl12 = l12.getContents(); // Pega todo o conteudo da coluna K
145 //stringm13 = m13.getContents(); // Pega todo o conteudo da coluna L
146 //stringn14 = n14.getContents(); // Pega todo o conteudo da coluna M
147
148 // Mostra o conteudo da coluna J
149 JOptionPane.showMessageDialog(null,"Conteudo da Coluna: " +stringk11);
150
151
152
153
154 // Inicio da Formula EWMA
155
156 lambida = 0.94;
157 i = 1;
158 lambida2 = 1;
159 ewma = 0;
160 do{
161 ewma = ewma + Math.pow(k11.getContents(10,i+1),2) * lambida2;
162 lambida2 = lambida2 * lambida;
163 i = i+1;
164 }while(lambida2 > 0.00001);
165 ewma = ewma * ( 1 - lambida);
166
167 // Fim da Formula EWMA
168
169 } // fecha for j
170 } // fecha for i
171 planilha.close(); // fecha planilha
172 };
173
174 }
175
176
177

O erro é na linha 161, os dados q estão vindo pra formula são em String, porem preciso elevar os dados a potência de 2 e esse metodo Math.pow(double a, double b) só aceita double.
Se alguem puder ajudar ai, vou ficar muito grato.

Meu msn é : ander_dorneles@hotmail.com
To sempre on line

Anderson Dorneles

não sei se entendi bem…mas acho que um:

Float.parseFloat(celula)

ou

Double.parseDouble(celula)

resolve o seu problema

[]'s

Olá,

Obriago pela dica, mais eu ja tinha experimentado isso, tanto float qto double:

stringk11 = Double.parseDouble(k11.getContents());

e da esse erro de excessão:

Exception in thread “main” java.lang.NumberFormatException: For input string: “12,3”
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.parseDouble(Double.java:510)
at EWMA.ewma(EWMA.java:141)
at EWMA.main(EWMA.java:54)
Java Result: 1

ahh, so pra constar, q como String o codigo como está lê todos os dados das celulas dessa coluna, ja como double…

esse dado “12,3” ele se encontra +/- no meio da planilha, não sei pq o erro nesse dado se os outros dados são parecidos. Porem ainda acho q o problema é a função getContents(); q não suporta dado ponto flutuante. Acho q preciso pegar esses dados de forma diferente, só não sei como fazer, só sei q pegar como string não vai rolar, e pelo q dei uma olhada na documentação, tem umas funções q pegam ja como double, só não soube usá-las.

Mais agradeço desde já

Anderson Dorneles

[quote=anderline27]Olá,

Obriago pela dica, mais eu ja tinha experimentado isso, tanto float qto double:

stringk11 = Double.parseDouble(k11.getContents());

e da esse erro de excessão:

Exception in thread “main” java.lang.NumberFormatException: For input string: “12,3”
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.parseDouble(Double.java:510)
at EWMA.ewma(EWMA.java:141)
at EWMA.main(EWMA.java:54)
Java Result: 1

ahh, so pra constar, q como String o codigo como está lê todos os dados das celulas dessa coluna, ja como double…

esse dado “12,3” ele se encontra +/- no meio da planilha, não sei pq o erro nesse dado se os outros dados são parecidos. Porem ainda acho q o problema é a função getContents(); q não suporta dado ponto flutuante. Acho q preciso pegar esses dados de forma diferente, só não sei como fazer, só sei q pegar como string não vai rolar, e pelo q dei uma olhada na documentação, tem umas funções q pegam ja como double, só não soube usá-las.

Mais agradeço desde já

Anderson Dorneles
[/quote]

Esse erro é pq o Java usa “.” ao invez de “,” para casas decimais.

O ideal seria usar essas funções que vc falou da própria API, mas eu tbm não conheço a API de manipulação do Excel.

Existem duas soluções pro seu caso, não são a idéais, mas resolvem:

  1. Alterar a sua planilha do excel para usar “.”

  2. Dar um replace na String antes de converter ela trocando de “,” para “.”. Use o método replace(’,’,’.’);

Mas o ideal seria vc tentar achar na API o método que te devolve double direto.

Olá,
Obrigado ai pelas dicas, mais não posso modificar a planilha, ela é esse padrao no sistema de recuperação do site da BMF. Se alguem conhecer a API Java Excel e souber como faço pra pegar esses dados da planilha em double ou float e quiser da uma força, vou ficar muito grato.

T+

Anderson Dorneles

Olá,

Resolvi o problema com a conversão de String para double com esse codigo:

           if (k11.getType() == CellType.NUMBER) 
                { 
                     NumberCell fc = (NumberCell)k11; 
                     stringk11 = fc.getValue();
                } 

Declarei a String com double e funcionou, porem estou com outro problema, preciso colocar o retorno dessa função:

         String stringk11 = k11.getContents();

Dentro de uma função Math.pow(x,y); onde o x é elevado a 2 e y são os retornos de cada celula da coluna de minha planilha, alguem sabe me dizer se Math.pow() aceita q eu faça isso:

             lambida = 0.94; 
             i = 1;
             lambida2 = 1;
             ewma = 0;
                do{
                    ewma = ewma + Math.pow(2, /*  função de retorno do conteudo das celulas */ ) * lambida2;
                    lambida2 = lambida2 * lambida;
                    i = i+1;
              }while(lambida2 > 0.00001);     
              ewma = ewma * ( 1 - lambida);

Ja tentei simplesmente multiplicar os retornos pelos prorprios retornos, ja q é elevado a 2, mais tb não funcionou.
Eu testi aki no compilador e não deu certo, se alguem souber de uma outra solução pra eu elever todo o conteudo das celulas ao quadrado da uma força ai q fico grato.

T+

Anderson Dorneles

Ola Galera

Tou aqui pecisando duma gande ajudinha:
Preciso construir um grafico (usando jfreechart) a partir dos dados (valores) que se encontram guardados num ficheiro.txt!!Como posso fazer isso?? :frowning:

[quote=BrunoNave]Ola Galera

Tou aqui pecisando duma gande ajudinha:
Preciso construir um grafico (usando jfreechart) a partir dos dados (valores) que se encontram guardados num ficheiro.txt!!Como posso fazer isso?? :frowning:
[/quote]

Olá,

Esses valores estão sendo sepadaros uns dos outros como ? tem como fazer acessando o arquivo, porem te aconselho colocar esses mesmos valores numa planilha do excel e usar a API Jexcel. Qualquer coisa te dou uma força pra vc ler os dados do excel a partir do java.

T+

//