How to: Leer un archivo de Excel para generar scripts Sql usando Powershell.

Los scripts son geniales para automatizar tareas de poco valor y que son repetitivas. Uno de los problemas con los que me he encontrado  y que mas pereza me da es la actualización  de catálogos desde un archivo de Excel. Las actualizaciones de los catálogos se proporcionan a través de una hoja de calculo, muy practico para el usuario final, muy incomodo para el programador. Decidí escribir scripts que permitan aplicar las actualizaciones automáticamente sin tener que  dedicarle tiempo. Quizá con una tarea programada o un build del servidor de CI.

La problemática.

Se requiere elaborar un script en Powershell que permita generar un script Sql para los proyectos de bases de datos. Se debe de leer desde el archivo Excel, validar minimamente los datos y posteriormente generar un script compatible con los proyectos de base de datos de Visual Studio.

¿Como leer desde Excel?.

Como programador .Net, debes de saber que cualquier lectura o escritura en archivos de MS Office es un problema. Microsoft provee componentes de comunicación directos para esta labor pero es necesario tener instalado Office en cualquier equipo donde se vaya a ejecutar la aplicación. Difícilmente vas a poder tener una licencia de Office en un servidor productivo.

Afortunadamente encontré un modulo de PS lo suficientemente competente para realizar la tarea que necesito. El modulo es: PSExcel.


Archivo de Pruebas.

Puedes descargar el archivo de pruebas aqui.

¿Como esta escrito el Script?.

El script se compone de una función principal que es: Procesa-Pedimentos. Esta función, lee desde el archivo Excel, después realiza unas validaciones mínimas, crea el script sql y lo guarda en la ruta definida en los argumentos. Las demás funciones son auxiliares al método principal.

Ejecutar el Script.

Conclusiones.

Espero este script te pueda servir de base para tus propios proyectos de automatización.

Autor imagen: CyberHades