Yo no me considero un experto en el paquete MS Office, ni tampoco en la aplicación Excel, pero empiezo a ver hojas de calculo excel con contenidos de bases de datos, (Acces). No comprendo muy bien como se pueden hacer operaciones aritmeticas con campos que contienen "nombre" "apellidos", "codigo postal", "Dirección" etc, etc.
Como digo, yo no soy un experto, y supongo que la gran versatilidad de Excel, permite a usuarios que menejan este tipo de hojas, realizar las funciones que necesitan, sin necesitar una base de datos con todo lo que esto implica.
Presonalmente prefiero usar sistemas que estan pensados para manejar este tipo de información.
Pretendo migrar una hoja excel (que contiene nombres, aplellidos, diecciónes) a una base de datos MySQL, por medio del paquete ofimatico OpenOffice.
Seguro que hay cien maneras mejores de hacer esto, pero con este metodo, no se requiere conocimientos avanzados en ninguna de las herramientas planteadas, y es eficaz.
Las herramientas.
- MySQL (Instalado y funcionado)
- OpenOffice (instalado)
- Controlador ODBC
- Una hoja de excel conteniendo información de una DDBB.
No mostrare como se instala, ni configura MySQL, en internet hay un monton de enlaces que muestran como hacer eso, tanto en plataformas Windows, Linux, OpenSolaris, BSD etc etc.
Tampoco mostrare como se instala OpenOffcie, es trivial, lo puedes obtener de aqui.
Empezaremos por el driver ODBC
Como trabajaremos con MySQL, lo idoneo es instalar el propio driver, se puede descargar de aqui.
Tenemos que selecionar que plataforma estamos usando, en mi caso bajare "Windows (x86, 32-bit), MSI Installer Connector-ODBC" despues escaparemos del registro pinchando en el enlace de mas abajo, el titulado "» No thanks, just take me to the downloads!"
Este conector nos proporciona el mecanismo para poder enchufarnos a la base de datos. Una vez descargado, lo instalaremos, el asistente de instalación nos permite tres modos o tipos de instalación, pero personalemte creo que sobran dos de ellos. Terminada la instalación, tenemos que ir a "Panel de control" -> "Herramientas Administrativas" -> "Orígenes de datos (ODBC)" y pinchar en la pestaña titulada "Controladores" tendriamos que ver que el driver esta instalado, mostrando una linea como esta "MySQL ODBC 5.1 Driver"
Ya tenemos la forma con la que nos conectaremos, pero antes necesitamos definir con quien y a que base de datos y con que credenciales.
Solo nos toca definir el conector, bien, pues en la misma ventana del "Administrador de orígen de datos" pinchamos en la pestaña "DSN de Usuario" y le damos a "Agregar..." uno nuevo y selecionamos nuestro nuevo controlador, y nos saldra algo como esto, yo he definido ya mis parametros.
Con el boton de Test, podemos confirmar que la conexion se establece.
Con esto ya tenemos todo lo que necesitamos para que OpenOffice, se pueda conectar a nuestra base de datos.
Comento muy por encima los campos a cumplimentar en el conector MySQL.
"Data Source Name" Es el "titulo" de nuestra conexión.
"Description" Pues eso, un resumen de que es la cosa.
"TCP/IP Server" En mi caso tengo que poner la IP del equipo donde esta coriendo MySQL y el puerto por defecto.
"User", Es el usuario "propietario" de la base de datos que se definira en el ultimo campo.
"Password" La password de mismo usuario que le permitiran hacer y desacer en la base de datos.
"Database" El nombre de la base de datos de la cual es propietario el usuario definido en este conector.
Ni que decir tiene que tanto la base de datos como el propietario (usuario) de esa base de datos tienen que existir.
Yo esto lo hago con phpMyAdmin, rapido y sencillo.
Continuamos por "enganchar" el fichero .xls
Lanzamos OO, en el modo Base, se lanza un asistente y marcaremos la opción "Conectar con una base de datos ya existente" y buscaremos la opcion "Hoja de Cálculo" luego, buscamos nuestro ficherito exel que contiene la base de datos, y finalmente asignanos un nombre al fichero que relacionara al .xls con el fichero de bases de datos .odf, ya lo tendremos listo.
Unas imagenes que ilustran mejor esto.
Con esto ya podremos tratar nuestro xls como una base de datos, pero esto es solo una especie de mascara, los datos continuan estando en el xls, no era esta nuestra intención final, lo queremos meter en una base de datos en MySQL.
La cosa es muy sencilla, solo tenemos que arrastrar esta base de datos a otra que ya estara conectada con MySQL, veamos como.
El paso final.
Iniciamos una vez mas OO y lanzamos el asistente para una base de tados (Base), pero esta vez, le diremos que conectamos a una base de datos existente y seleccionaremos ODBC continuamos y selecionamos el conector definido en el primer apartado de articulo, definimos el usuario y marcamos que necesita contraseña y terminaremos dando un nombre a nuestra nueva interface de OO, que nos conectara con MySQL y la base de datos ya creada anteriormente.
Al darle al boton de Finalizar, nos solicita que demos un nombre al fichero que nos servira para enlazar con la base de datos de MySQL, al dar el nombre, nos saldra una ventana para que nos autentiquemos, solicitandonos la contraseña del usuario.
Solo nos queda arrastrar la tablas o tabla inicial, al arrastrarla nos saltara otro mini asistente y nos preguntara si queremos arrastrar la definición o/y los datos, le damos que definición y datos, si no tiene clave primaria seria bueno añadirla, y continuamos, selecionando que campos queremos que se arrastren, en mi caso quiero que se muevan todos, finalmente nos permite cambiar los nombres de los campos y las definiciones, (no es mi caso), dandole a "Crear" para finalizar el proceso.
Pasados unos segundos en función del tamaño de nuestras tablas, podremos ver que se ha movido, y lo tenemos listo, para su posterior uso, permitiendo a otras aplicaciones interactuar con nuestra base de datos.
Todo esto se ve mejor con estas capturas que ilustran este proceso.