Sei sulla pagina 1di 3

Leer Excel desde Java como si fuera una Base de Datos - ChuWiki

http://chuwiki.chuidiang.org/index.php?title=Leer_Excel_desde_Java_co...

JDBC-to-ODBC Bridge
For Windows, OS X, Linux, Unix. OpenLink Software, since 1993.
uda.openlinksw.com/jdbc-odbc-st/

Curso Struts Framework


Aprende a programar en Framework Struts con los mejores. Compra aqu
www.globalmentoring.com.mx

AMQP meets JMS


AMQP 1.0 fully integrated with JMS, free AMQP 1.0 Client!
www.swiftmq.com

ERP Systems List


Free expert ratings of ERP systems. Make your own professional reports!
SoftwareResearchTools.com/free_rep

Leer Excel desde Java como si fuera una Base de Datos


0
T wittear 1

De ChuWiki

Contenido
1 Configurar la fuente de datos 2 Cdigo java 3 Tablas 3.1 Nombre de las tablas 3.2 Catlogos

Desde java y usando el driver ojdb, podemos acceder a un fichero Excel como si fuera una base de datos, de forma que podremos leer su contenido o escribir en l. Veamos aqu cmo.

Configurar la fuente de datos


Lo primero que tenemos que hacer, en windows, es configurar el fichero excel como si fuera una fuente de datos. Puedes ver el vdeo de cmo configurar un excel como fuente de datos. Screencasts and videos online (http://www.screentoaster.com/) Si lo prefieres puedes ver los pasos detallados en Conectar Java con Access, aunque all se habla de un fichero Access y ficheros .mdb. Debes hacer lo mismo, pero eligiendo un Driver de excel y un fichero .xls

Cdigo java

1 de 3

30/01/2012 1:39

Leer Excel desde Java como si fuera una Base de Datos - ChuWiki

http://chuwiki.chuidiang.org/index.php?title=Leer_Excel_desde_Java_co...

Smplemente debemos abrir la conexin como si fuera una base de datos normal, usando el Driver sun.jdbc.odbc.JdbcOdbcDriver. El cdigo puede ser como este
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conexion = DriverManager.getConnection("jdbc:odbc:un_excel");

donde "un_excel" es el nombre que elegimos para la fuente de datos cuando la configuramos en el paso anterior. A partir de aqu, el cdigo es el normal para acceso a cualquier base de datos (http://www.chuidiang.com /java/mysql/EjemploJava.php) , usando los Statement y ResultSet. Podemos leer o insertar, si al configurar en la fuente de datos desmarcamos el check de "slo lectura". Smplemente comentar un par de cosas:

Tablas
En un excel se considera que cada una de las hojas dentro del fichero excel es una tabla. Las columnas de la tabla sern los nombres que aparecen en la primera fila (no las letras A,B,C...). As, por ejemplo, el siguiente trozo de cdigo java
try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conexion = DriverManager .getConnection("jdbc:odbc:un_excel"); Statement st = conexion.createStatement(); st.execute("create table kk2 (id NUMBER, nombre TEXT, precio NUMBER)"); st.execute("INSERT INTO kk2 (id,nombre,precio) " + "VALUES (1,'hola',12.52)"); conexion.close(); } catch (Exception e) { e.printStackTrace(); }

Dar como resultado la siguiente hoja de excel

2 de 3

30/01/2012 1:39

Leer Excel desde Java como si fuera una Base de Datos - ChuWiki

http://chuwiki.chuidiang.org/index.php?title=Leer_Excel_desde_Java_co...

Nombre de las tablas


Si el fihero excel se ha creado con la aplicacin excel en vez de con nuestra aplicacin java, desde java veremos los nombres de las hojas (de las tablas) con un $ detrs. Por ejemplo, si el excel tiene una pestaa etiquetada "Nov2004", desde java la veremos como "Nov2004$". La forma de acceder a ellos con una SQL sin que nos de error por el carcter $, es poniendo el nombre de la tabla con el $ y todo ello entre corchetes, as [Nov2004$]
ResultSet rs = st.executeQuery("select * from [Nov2004$]");

Si la tabla la hemos creado nosotros con un "create table", no es necesario este $ al consultarla.

Catlogos
Los catlogos que considera la base de datos son los ficheros Excel. Cuando abrimos nuestra fuente de datos que apunta a un fichero excel, el catlogo que estamos usando es ese fichero excel. Sin embargo, tendremos como catlogos accesibles todos los ficheros excel que haya en el mismo directorio del fichero excel que hemos elegido. Y si cambiamos de catlogo y ponemos uno que no existe, estaremos creando un fichero excel nuevo en ese directorio.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conexion = DriverManager.getConnection("jdbc:odbc:un_excel"); conexion.setCatalog("nuevoCatalogo");

Ese trozo de cdigo utilizar el fichero "nuevoCatalogo.xls", independientemente del fichero que hayamos indicado en la fuente de datos "un_excel". Si ese fichero nuevoCatalogo.xls existe, ser el que se use. Si no existe, lo crear (debemos nosotros, desde java, crear las tablas correspondientes y las columnas para cada una de ellas). Obtenido de "http://chuwiki.chuidiang.org /index.php?title=Leer_Excel_desde_Java_como_si_fuera_una_Base_de_Datos" Categora: Java:Base de datos
Oracle Licenses Worldwide Get the Oracle licenses at discounts from Oracle Partner www.pontis.biz Oracle Industry Apps Compare ERP vendors to Oracle and implement your closest match. ERP.technologyevaluation.com Pregunte al Tcnico 5 Tcnicos estn en lnea. Pregunte y obtenga su respuesta ya! JustAnswer.es/electronica-es

Esta pgina fue modificada por ltima vez el 05:26, 3 dic 2011.

Esta obra est bajo una licencia de Creative Commons. Para reconocer la autora debes poner http://www.chuidiang.com/chuwiki

3 de 3

30/01/2012 1:39

Potrebbero piacerti anche