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 más 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 cálculo, muy práctico para el usuario final, muy incómodo 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 mínimamente 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 módulo de PS lo suficientemente competente para realizar la tarea que necesito. El módulo es: PSExcel.


Archivo de Pruebas.

Puedes descargar el archivo de pruebas aquí.

¿Cómo está 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 efectúa 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

Gustavo Sánchez
Últimas entradas de Gustavo Sánchez (ver todo)

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.