Origen de Excel

El origen de Excel extrae datos de hojas de cálculo o de rangos de libros de Microsoft Excel.

El origen de Excel ofrece cuatro modos de acceso a datos distintos para extraer datos:

  • Una tabla o vista.

  • Una tabla o vista especificadas en una variable.

  • Los resultados de una instrucción SQL. La consulta puede tener parámetros.

  • Los resultados de una instrucción SQL, almacenados en una variable.

Nota importanteImportante

En Excel, una hoja o un rango equivalen a una tabla o vista. La lista de tablas disponibles en los editores de Origen y Destino de Excel muestra las hojas de cálculo existentes (identificadas con el signo $ anexado al nombre de la hoja de cálculo, como, por ejemplo, Hoja1$) y rangos con nombre (identificados por la falta del signo $, como por ejemplo, MiRango). Para obtener más información, vea la sección Consideraciones de uso.

El origen de Excel usa un Administrador de conexiones con Excel para conectar con un origen de datos y el Administrador de conexiones especifica el archivo de libro que se debe usar. Para obtener más información, vea Administrador de conexiones con Excel.

El origen de Excel tiene una salida normal y una salida de error.

Consideraciones de uso

El Administrador de conexiones con Excel usa el Proveedor Microsoft OLE DB para Jet 4.0 y el controlador ISAM (Método de acceso secuencial indizado) de Excel asociado para conectar con orígenes Excel de datos y leer y escribir datos en ellos.

Muchos artículos de Microsoft Knowledge Base documentan el comportamiento de este proveedor y el controlador. Aunque estos artículos no son específicos de Integration Services ni de Servicios de transformación de datos (su predecesor), posiblemente le interese conocer determinados comportamientos que pueden provocar resultados inesperados. Para obtener información general sobre el uso y el comportamiento del controlador de Excel, vea Cómo usar ADO con datos de Excel procedentes de Visual Basic o VBA.

Los siguientes comportamientos del proveedor Jet con el controlador de Excel pueden provocar resultados inesperados al leer datos de un origen de datos de Excel.

  • Orígenes de datos. El origen de datos de un libro de Excel puede ser una hoja de cálculo, a cuyo nombre debe agregarse el signo $ (por ejemplo, Hoja1$), un rango con nombre (por ejemplo, MiRango). En una instrucción SQL, el nombre de la hoja debe estar delimitado (por ejemplo [Hoja1$]) para evitar un error de sintaxis producido por el signo $. El Generador de consultas agrega automáticamente estos delimitadores. Al especificar una hoja de cálculo o un rango, el controlador lee los bloques contiguos de celdas, comenzando con la primera celda no vacía en la esquina superior izquierda de la hoja de cálculo o rango. Por tanto, no deben dejarse filas vacías en los datos de origen, ni una fila vacía entre las filas de título o de cabecera y las filas de datos.

  • Valores que faltan. Este controlador lee un cierto número de filas (de forma predeterminada, 8) en el origen especificado para elegir el tipo de datos de cada columna. Cuando una columna parece contener varios tipos de datos, especialmente numéricos y de texto, el controlador elige el tipo más usado y devuelve valores NULL en las celdas que contienen datos de los demás tipos. (En caso de empate, el tipo numérico tiene prioridad.) La mayoría de las opciones de formato en las hojas Excel parecen no afectar a esta determinación de tipos de datos. Para modificar este comportamiento del controlador de Excel, especifique el modo de importación. Para especificar el modo de importación, agregue IMEX=1 al valor de Propiedades extendidas en la cadena de conexión del Administrador de conexiones con Excel en la ventana Propiedades. Para obtener más información, vea PRB: valores de Excel devueltos como NULL usando DAO OpenRecordset.

  • Texto truncado. Cuando el controlador determina que una columna de Excel contiene datos de texto, el controlador selecciona el tipo de datos (cadena o memorando) en función del valor más largo que muestrea. Si el controlador no descubre valores de más de 255 caracteres en las filas que muestrea, trata a la columna como una columna de cadena de 255 caracteres en lugar de una columna memorando. Así, es posible que se trunquen las cadenas con más de 255 caracteres. Para importar datos de una columna memorando sin que se trunquen, debe asegurarse de que la columna memo contenga, en al menos una de las filas muestreadas, un valor superior a los 255 caracteres, o tendrá que incrementar el número de filas muestreadas por el controlador para que se incluya dicha fila. Puede incrementar el número de filas muestreadas aumentando el valor de TypeGuessRows en la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel del Registro. Para obtener más información, vea PRB: transferencia de datos del origen de OLEDB de Jet 4.0 con error.

  • Tipos de datos. El controlador de Excel reconoce solo un conjunto limitado de tipos de datos. Por ejemplo, todas las columnas numéricas se interpretan como dobles (DT_R8), y todas las columnas de cadena (a excepción de las columnas memorando) se interpretan como cadenas Unicode de 255 caracteres (DT_WSTR). Integration Services asigna los tipos de datos de Excel de la siguiente manera:

    • Numérico: flotante de doble precisión (DT_R8)

    • Moneda: moneda (DT_CY)

    • Booleano: booleano (DT_BOOL)

    • Fecha/hora: datetime (DT_DATE)

    • Cadena: cadena Unicode, longitud de 255 caracteres (DT_WSTR)

    • Memorando: secuencia de texto Unicode (DT_NTEXT)

  • Conversiones de tipo de datos y de longitud. Integration Services no convierte tipos de datos de forma implícita. Como resultado, probablemente necesite utilizar las transformaciones Columna derivada o Conversión de datos para convertir datos de Excel de forma explícita antes de cargarlos en un destino diferente de Excel, o para convertir datos que no son de Excel antes de cargarlos en un destino de Excel. En este caso, puede resultar útil crear el paquete inicial a través del Asistente para importación y exportación, que le configura las conversiones necesarias. Entre algunos ejemplos de las conversiones que se pueden requerir, figuran:

    • Conversión entre columnas de cadena de Excel Unicode y columnas de cadena no Unicode con páginas de códigos específicas

    • Conversión entre columnas de cadena de Excel de 255 caracteres y columnas de cadena de diferentes longitudes

    • Conversión entre columnas numéricas de Excel de doble precisión y columnas numéricas de otros tipos

Configurar el origen de Excel

Puede establecer propiedades a través del Diseñador SSIS o mediante programación.

Para obtener más información acerca de las propiedades que puede establecer en el cuadro de diálogo Editor de origen de Excel, haga clic en uno de los temas siguientes:

El cuadro de diálogo Editor avanzado indica todas las propiedades que se pueden establecer mediante programación. Para obtener más información acerca de las propiedades que puede establecer a través del cuadro de diálogo Editor avanzado o mediante programación, haga clic en uno de los temas siguientes:

Para obtener más información sobre cómo establecer valores de propiedades, haga clic en uno de los temas siguientes:

Para obtener información sobre cómo recorrer en bucle un grupo de archivos de Excel, vea Cómo crear bucles entre archivos y tablas de Excel usando un contenedor de bucles Foreach.

Recursos externos

Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las descargas, los artículos, los ejemplos y los vídeos más recientes de Microsoft, así como una selección de soluciones de la comunidad, visite la página de Integration Services en MSDN:


Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.