Leer Excel desde java y crear consultas

Esta consulta puede que sea de las más difíciles que te he realizado, espero y agradezco mucho cualquier ayuda que me puedas prestar.
Tengo un archivo excel en el que tengo organizado un árbol de localidades.. Por poner un ejemplo, en A1 tengo españa, luego en B2 una CCAA y desde c3 hasta abajo todas sus provincias... Para que te hagas una idea de como está organizado.. Digamos que solo hay un dato en cada fila.
Tengo que crear inserts masivos desde mi proyecto java, es decir un insert por cada localidad.. Y que java lea el excel creado.
De momento he insertado 2 librerías en mi proyecto que pueden valer, una es POI y otra JExcel. También he creado una especie de applet que examina el excel y e creado un botón para que realize la acción, que consiste en leer todo el archivo de excel, y utilizando el método del oad insertar en base de datos todo.
No se como recorrer el excel y que el oad recoja los datos.. Me reuslta difícil. Como crees que podría hacerlo.
Respuesta
1
Mi recomendación es que hagas un "Guardar Como" y lo guardes como "CSV" (comma separated values), que es un fichero de texto plano. Luego, lees el fichero de texto con la librería java. Io y listo. Vas leyendo línea a línea en un String, y le haces un split(",") para separar las columnas. Si encuentras algo en la primera columna, insertas un país, si encuentras algo en la 2ª columna, insertas una CCAA en el país activo (el último que has insertado), y si encuentras algo en la 3ª columna, insertas una localidad, enlazada con la última CCAA insertada.
Es como yo lo haría.
Agradezco tu respuesta, pero es que el problema es que el excel tiene que servir para hacer consultas de actualización de tabla, y tengo que crear un código para que cuando salte de fila y no de columna, cree otra insert nueva... pufff no se como hacerlo.. he visto por ahí que se puede usar la librería POI y la JExcel, pero no se más.
Perdona, pero no entiendo lo que me cuentas:
"... Es que el problema es que el excel tiene que servir para hacer consultas de actualización de tabla..."
¿Quién tiene que hacer las actualizaciones e inserciones, java o excel? Yo entendía que el archivo "excel" se usa sólo para leer el contenido, y no hace nada. Por favor, explícame el asunto un poco mejor, porque no me aclaro. Sigo pensando que lo mejor es que leas desde java un fichero de texto plano, exportado desde excel, sin usar librerías extra.
No me extraña karlos, entre que es complicado y no lo explico bien.. apañados estamos.
Bien la cuestión es, que tengo un excel donde guardo un árbol de cosas que esta configurado de tal manera que solo una fila contiene un dato, y si es del mismo tipo esta en la misma columna. Te pongo un ej: en A1 España, ¿En B2 una CCAA y desde C3 a C9 todas sus localidades luego en B10 otra CCAA me entiendes? Lo que quiero es recorrer el excel de tal manera que consiga un insert por cada localidad. Para ello en el proyecto también tengo un OT y un OAD. La cuestión es que en mi proyecto se abre una especie de applet con un buscador de excel y un botón que llama a la acción y se generan las inserts automáticamente. El botón debe llamar a un método que lea el excel, lo recorra y vaya generando OT por cada localidad, y por cada OT llama al OAD y actualice la tabla... necesito un método de lectua del excel, pero teniendo en cuenta que no solo debe leer la ultima localidad, sino recordar a que ccaa pertenece y a que país pertenece (siguiendo el ejemplo). Espero que ahora si me hayas entendido.. se que es complicado, pero al menos para encaminarme ... te agradezco mucho tu paciencia
Pues es como lo había entendido al principio. Tan solo unas preguntas:
1) ¿No sería posible que el applet o lo que sea, en vez de esperar la excel espere un fichero de texto plano previamente exportado? Es decir, ¿es un requisito indispensable que la lectura sea directamente desde la excel?
2) ¿Cuántas veces se va a ejecutar el proceso, a menudo o sólo para cargar inicialmente una base de datos?
No me importa que fuera con texto plano, pero pensamos que podía ser mejor excel para recordar la rama entera de cada localidad...
Es un proceso solo para la carga inicial, que va a ser grande, y puede que en un futuro a medio-largo se tenga que actualizar.
Pues lo que te recomiendo es que mantengáis la excel para meter cambios, etc, pero que para hacer los inserts en BBDD, hagáis un "guardar como CSV", y seleccionéis ese fichero .csv como entrada al proceso java. Seguid los pasos que os indiqué en mi primera respuesta, y tendréis el problema solucionado. Si tenéis dudas al respecto, me preguntas de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas