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
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
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.
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();
}
}
:lol:
:lol:
: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:
-
Alterar a sua planilha do excel para usar “.”
-
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??
[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??
[/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+