JAVA - Representar recta

ThatsMe

Portugal@Home Member
Boas.

Eu tenho que fazer o seguinte: Em java, representar uma recta num dado intervalo de X e Y. Supostamente, tenho que fazer isto com a ajuda do Excel. Sabem como usar o Excel com o java, de forma a representar uma recta?

Obviamente que não estou a pedir o exercicio feito, apenas estou a pedir ajuda :)
 
Se são valores separados de X e Y provavelmente tens que usar um CSV file, feito em excel ou não, e ler o ficheiro de forma a conseguires ter acesso a tudo nessa estrada.
podes guardar tudo num array de inteiros, ou mesmo numa lista ligada, caso seja para visionamento sequencial
 
tens que ler o ficheiro xls. um ficheiro CSV é um ficheiro de texto em que os valores são separados por virgulas.

ou seja, readline() e usas o stringtokenizer para retirar as coisas tendo como separador a virgula
 
hum, nao sei se vou ajudar muito mas,...
será isto que queres?

- http://www.javaworld.com/javaworld/jw-03-2004/jw-0322-poi.html
- http://www.onjava.com/pub/a/onjava/2003/04/16/poi_excel.html

Nao aprofundei muito a leitura, mas acho que esse "POI" não esta nas APIs do Java, terá que o sacar provavelmente.
Mas pelo codigo que vi parece ser de facil utilização ;).
E penso que so suporta .xls e nao a nova versão do Excel .xlsx

Em alternativa usas o CSV que é texto separado por virgulas. Basta-te um readline() e um .split(", "), penso eu :p. Abre-se como texto ;).

Cumps ;).
 
Última edição:
Ora, ainda bem que falaram no Split. Eu ouvi na minha turma a falarem que tinhamos que usar o split e o bloco de notas. Pelo que estou a perceber, os dados vao ser importados do .xml para o bloco de notas, e o split vai "pesquisar" o .txt para tirar os valores separados por ",", certo?

@ solidforms

Quanto aos links que mandaste não ajudam muito. Ensina realmente a manusear Excel e Java em conjunto, mas tanto quanto vi não serve para o caso específico que eu quero. Mas obrigado na mesma.
 
Nao o split actua sobre uma linha lida; isto é actua sobre uma String.
Nao le todo o documento e formata;

hum, ok ok.
Nao precisas de passar nada para o bloco de notas. Quando inseres os valores no Excel e gravares, em vez de gravares em .xlsx ou .xsl gravas em csv. Este formato separa cada celula de uma linha por virgulas. E cria uma nova linha quando mudas de linha no Excel.

Desta forma apenas tens que:
- Abrir o ficheiro excel com o formato csv;
- fazes um while(hasNextLine()) e les a linha para uma string;
- crias um array String[] = nome_da_string_com_a_linha_lida.split(", ");
- e pronto, cada posição do vector terá o valor de uma celula do Excel numa mesma linha;

Cumps ;)
 
Aah! Agora entendi.

Mas não será melhor criar como String [][]? É que o .xml tem mais que uma linha e mais que uma coluna, por isso se calhar faz mais sentido ser uma matriz, nao?
 
Hum, sim quando te respondi pensei nisso :p.
Se queres ler tudo na totalidade, sim é o melhor. Mas convem saberes a dimensão das linhas previamente. O ficheiro é .xSl ou .xMl ? .xml o Java ja tem APIs para ler .xml :o.
Agora, o ficheiro só irá ter 2 colunas né? X e Y ?
Portanto será uma matriz [][2] :p.

Talvez fosse melhor fazeres uma matriz int[linhas][2]. Imagina que a matriz de inteiros terá o nome de coordenadas. E depois fazes:
Tens que guardar a linha corrente: int currentLine = 0; // declarado no inicio do programa
String aux = in.nextLine(); // lé a linha corrente
String[] args = aux.split(", "); // separa a linha por virgulas
for(int i = 0 ; i < args.length ; i++)
coordenadas[linha_corrente] = Integer.parseInt(args);

no final do ciclo a instrução seguinte será currentLine++;

É a solução mais simples ;).
Cumps :p

Nota: eu ainda nao experimentei guardar um ficheiro excel como .csv e correr um simples programa no Java. Portanto nao sei mesmo o comportamento desse tipo de ficheiro. Vou testar agora num exmplo muito simples.
 
Olha, em vez de fazeres o .csv faz assim, agora que ia a guardar o Excel vi um formato bastante melhor:
Quando fazes Save As podes escolher para guardar como .txt (Tab delimited) desta forma cria logo um .txt em que os dados sao guardados com tabulações.
1 2
3 4
5 6
7 8
9 10

Assim no split fazes xxx.split("\t");
Cumps ;)
 
mas tu estas a dar XML em programação? eu ainda nao percebi bem se estas mesmo a dar .xml ou se estas a confundir a extensão de um ficheiro Excel :007:.

Cumps ;).
 
Back
Topo