sábado, 7 de junio de 2008

NumericalAnalysis viejos tiempos

Hoy me acorde de la clase de Analisis Numerico con el cual tuve la experiencia de desarrollar una pequeña herramienta en Java, agradezco al Profesor Jose Fuentes por impulsarnos a desarrollar esto. La herramienta permite el calculo de muchos temas de esta materia como por ejemplo:

  • Conversiones de Sistemas binarios, hexadecimales, octal.
  • Calculo de Errores
  • Ecuaciones no Lineales por el metodo de: Newton-Raphson, Secante, Biseccion, etc.
  • Sistemas de Ecuaciones Lineales
  • Interpolaciones y Aproximaciones.

Todavia le falta algunas cosas pero si alguien quiere ver el codigo y continuar bienvenido sea.
Ademas cualquier ayuda en el Codigo me escriben y yo explico.

OK. Me despido, descarga el proyecto aqui esta hecho en Netbean 5.1 esta zipeado, y si no quieren abrirlo con netbean entonces usen la dist ahi esta el jar ejecutable y las dependencias JEP entre otras que use.

PD: no use ninguna BD ni fichero que yo recuerde....
Agradecimientos al colaborador Cesar Bolaños

martes, 3 de junio de 2008

Exportar JTable a Excel

Saludos lectores, el siguiente post te ayudara a saber como exportar datos desde Java a Excel lo cual es extremadamente sencillo pero vale la pena un ejemplito para estar claro.

JTable es un componente tabla en java y es muy usual al momento de usar archivos y ficheros y desplegar mucha informacion agrupada las preguntas de como exportarlo a un formato comun como xls. Existen en realidad muchas maneras de hacerlos. Entre estos estan:

POI Jakarta
JXLS en Sourceforge
JExcel API

Este ultimo es el que utilizaremos en la clase que voy a explicar (por cierto acaba de salir la ultima version en mayo 28, 2009). Aqui estan los pasos a Seguir

Paso 1

Descargar el API de JExcel. Descomprimimos y encontraremos muchas cosas documentacion, src, build, pero nos interesa el jxl.jar solamente; y Por supuesto agregarla a nuestro Classpath con el IDE con el flags -cp. (java -cp jxl.jar NombreClaseQueUsaJXL.java)

Paso 2:

Despues de completar el paso 1(daaa!!). Crear la clase y el constructor (por cierto con poca cohesion pero por hoy hablamos de exportar :D). Asi que por el momento se vera asi:






Paso 3:

Ahora lo importante creamos un metodo export (bueno te imaginaras para que verdad?) y contendra los siguientes objetos:

DataOutputStream out nos sirve como un flujo de informacion, se coloca en la ruta del File que se le paso en el constructor.

WritableWorkbook w: es el que crea una hoja de trabajo de excel

WritableSheet s
: una pagina donde colocar la informacion donde el nombreTab representa el nombre del Tab y el 0 el indice.

Hasta ahi por el momento.... se ve algo asi:





Estamos considerablemente bien los metodos de creacion del DataOutputStream son bastante basico y lo que representa es quien escribe los datos de salida (uyy redundante). Creamos una de esas hojas fancy de excel con el nombre y el indice de que hoja vamos a escribir. y Cerramos..... hasta ahora facillllllllllll


Paso 4:

Luego entre la creacion WritableSheet y antes de cerrar el WritableWorkbook hacemos lo que venimos hacer a escribir datos de una tabla Java a excel, entonces primero hacemos un ciclo que recorra cada columna, y despues uno anidado que recorra cada fila, (i==>columna && j ==> fila ok?). Utilizamos la clase label para colocarlo como etiqueta (pero existen otro tipo de clases para representaciones de Excel mas tipicas como Number, Date, etc); todo este palabrerio se traduce en:



Es util para agregar una celda, use la clase Label de import jxl.write.Label; (JExcel API).

Paso 5: Ultimo paso consiste en una miserable linea de codigo antes de cerrar el workbook y luego del ciclo for para escribir todo lo que colocamos en la hoja asi:





Ahhh no crees que sea posible descargate el codigo (tiene un ejemplito del proyectito hecho en Netbean una tabla que al iniciar el programa se almacena con el nombre de java.xls. La ventaja ya tiene el codigo antes hablado. Y hasta aqui por el momento hasta la proxima.

Para importar de un archivo de excel a un JTable.
Tambien para Exportar multiples tablas a multiples hojas