1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

JAVA - Representar recta

Discussão em 'Programação' iniciada por ThatsMe, 12 de Dezembro de 2008. (Respostas: 17; Visualizações: 1108)

  1. ThatsMe

    ThatsMe [email protected] 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 :)
     
  2. cybersurfer

    cybersurfer Power Member

    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
     
  3. ThatsMe

    ThatsMe [email protected] Member

    Mas como posso importar os dados do excel? É esse o grande problema.
     
  4. cybersurfer

    cybersurfer Power Member

    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
     
  5. solidforms

    solidforms Power Member

    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: 12 de Dezembro de 2008
  6. ThatsMe

    ThatsMe [email protected] Member

    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.
     
  7. solidforms

    solidforms Power Member

    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 ;)
     
  8. ThatsMe

    ThatsMe [email protected] Member

    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?
     
  9. solidforms

    solidforms Power Member

    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.
     
  10. ThatsMe

    ThatsMe [email protected] Member

    Estou a compreender :) Muito obrigado.
     
  11. solidforms

    solidforms Power Member

    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 ;)
     
  12. ThatsMe

    ThatsMe [email protected] Member

    Qual será o mais facil de implementar? :D
     
  13. solidforms

    solidforms Power Member

    é a mesma coisa, so que usas o split("\t") :007:. Mas o formato pode ser melhor para o Java xD. Ficheiros .txt são lidos de certeza ;D.

    Cumps ;)
     
  14. ThatsMe

    ThatsMe [email protected] Member

    Sim, isso é verdade. Mas eu pergunto aos profs e logo vejo o que preferem :D
     
  15. solidforms

    solidforms Power Member

    Hum, ok ok :p. Podes até perguntar se é essa a implementação correcta. Nao sei o que deste em Java x).

    Boa sorte :p.
    Cumps ;).
     
  16. ThatsMe

    ThatsMe [email protected] Member

    Eu nem sequer dei a implementação com .xml xD Temos que pedir apoio nisso aos profs agora.


    Obrigado :)
    Cumps
     
  17. solidforms

    solidforms Power Member

    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 ;).
     
  18. ThatsMe

    ThatsMe [email protected] Member

    Estou a falar da extensão do Excel xD
     

Partilhar esta Página