Buenas a todos, tanto la gente que desarrolla software, como los usuarios posteriores nos encontramos a menudo con la necesidad de cambiar de un formato a otro los archivos que generan unas herramientas para poder cargarlos en otras posteriormente. Por ejemplo, nuestra herramienta Anubis, permite exportar e importar información en formato XML, y puede ser interesante tras una auditoría exportar este archivo a otro formato, para cargar en otra herramienta un listado de máquinas recuperado con Anubis por una transferencia de zona o al revés, cargar un listado de máquinas en Anubis a través de un XML.
Para estos procesos de conversión hay gente que pica sus propios scripts y aplicaciones, pero en el mercado hay algunas herramientas gratuitas y muy potentes que nos pueden ser de mucha utilidad para ello.
Mi preferida es Kettle, de Pentaho: http://kettle.pentaho.com/
Se trata de un ETL, siglas de “Extract, Transform and Load”, citando a wikipedia: un ETL es el proceso que permite a las organizaciones mover datos desde múltiples fuentes, reformatearlos y limpiarlos, y cargarlos en otra base de datos, data mart, o data warehouse para analizar, o en otro sistema operacional para apoyar un proceso de negocio.
Hoy veremos cómo convertir una tabla con un listado de máquinas que tenemos en Excel a XML utilizando este ETL. Probablemente sea una de las conversiones más comunes que se realizan.
En primer lugar abriremos nuestro Excel y lo guardaremos en formato CSV (archivo de texto plano con las columnas separadas por el carácter “;”):
A continuación, tras descargarnos Kettle ejecutaremos el archivo Spoon.bat:
Después clicaremos en Transformaciones-> botón derecho-> Nuevo
Seleccionamos “Entrada fichero de texto” y lo arrastraremos a la ventana de la derecha:
Ahora hacemos lo mismo con “Salida XML”:
Ahora con shift, manteniéndolo pulsado, arrastramos una flecha desde “Entrada Fichero de texto” hasta “Salida XML”. De esta manera ya tendremos configurado el formato origen y destino de la conversión:
Pulsaremos doble clic en “Entrada Fichero de texto”:
Ahora le proporcionaremos un nombre, adjuntaremos el archivo CSV que hemos creado anteriormente y pulsaremos en añadir.
Ahora iremos a la pestaña Contenido:
En esta pantalla comprobaremos que el tipo de fichero sea CSV, que el separador de campos sea “;”, que es nuestro delimitador y que solo tengamos una línea de cabecera (si es así realmente como está en nuestra Excel claro).
Ahora iremos a la pestaña campos:
Pulsamos en “Traer Campos”:
Comprobaremos que todos los tipos de columna tienen el formato que tienen que tener, en nuestro caso, todas son String.
Pulsamos en “preview rows” para ver que todo está correcto y cerramos la ventana.
A continuación abriremos “Salida XML”:
Indicaremos en “Examinar” la ruta donde queremos guardar el XML con la salida.
Ahora iremos a la pestaña campos:
Pulsamos en Obtener Campos:
Pulsaremos en “Vale” y realizaremos la transformación pulsando en “Play”:
Finalmente pulsaremos sobre “Ejecutar” y realizará la conversión a XML.
¿Sencillo no? Ya tenemos nuestro fichero XML.
La herramienta como veis es muy potente y permite realizar muchas configuraciones, modificando los campos de salida por ejemplo, o añadiéndole nueva información durante la conversión o de distintas fuentes.
Un saludo!