SSIS - SQL Server Integration Services - Traer datos de Excel

 
Vista:

Traer datos de Excel

Publicado por Pablo Iñareta (1 intervención) el 05/10/2009 16:52:33
Mi problema es que no se como parametrizar las diferentes hojas de un excel, de manera que se me cargue un libro entero, independientemente del numero hojas que éste tenga.
No tengo problemas a la hora de parametrizar el nombre del archivo y meterlo en un bucle, pero si para cada hoja, individualmente.

¿Alguna idea?

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Parametrización de hojas en un Excel en un bucle

Publicado por Alejandro (60 intervenciones) el 21/02/2024 21:30:50
Pablo, entiendo que deseas parametrizar la carga de un libro de Excel completo, incluyendo todas sus hojas, en un bucle. Puedes lograr esto utilizando una combinación de variables y el conjunto de datos del sistema de archivos en SSIS. Aquí hay una guía paso a paso:

1. Creación de variables:
- Crea dos variables en tu paquete SSIS: una variable para contener el nombre del archivo de Excel (`ArchivoExcel`) y otra para almacenar el nombre de la hoja actual (`NombreHoja`).

2. Bucle Foreach Loop Container:
- Agrega un contenedor de bucle Foreach Loop Container a tu paquete. Configura este bucle para iterar a través de los archivos de Excel en una carpeta específica utilizando el conjunto de datos del sistema de archivos.

3. Conjunto de datos del sistema de archivos:
- Configura el conjunto de datos del sistema de archivos para recuperar únicamente archivos de Excel en la carpeta deseada.

4. Mapeo de variables en el bucle:
- Dentro del bucle Foreach, mapea la variable `ArchivoExcel` al nombre de archivo del conjunto de datos del sistema de archivos. Esto permitirá que la variable `ArchivoExcel` tome el valor de cada archivo de Excel durante cada iteración del bucle.

5. Tarea de ejecución de SQL (Execute SQL Task):
- Agrega una tarea de ejecución de SQL (Execute SQL Task) después del bucle Foreach. Configura esta tarea para ejecutar una consulta SQL que obtenga una lista de todas las hojas en el libro de Excel actual. Puedes utilizar el proveedor `EXCEL` y una consulta como `"SELECT * FROM [Hoja$]"`.

6. Tarea de bucle Foreach Loop Container interno:
- Agrega otro bucle Foreach Loop Container dentro del bucle existente. Configura este bucle para iterar a través de las hojas devueltas por la consulta SQL en la tarea anterior.

7. Mapeo de variables en el bucle interno:
- Mapea la variable `NombreHoja` al nombre de la hoja del conjunto de datos del bucle Foreach interno.

8. Tarea de extracción de datos (Data Flow Task):
- Dentro del bucle Foreach interno, agrega una tarea de extracción de datos (Data Flow Task) para extraer los datos de cada hoja del libro de Excel.

Este diseño te permitirá cargar todas las hojas de cada libro de Excel en la carpeta especificada. Asegúrate de configurar las conexiones y los mapeos de variables adecuadamente en cada tarea.

Espero que esta guía te sea de ayuda.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar