Partager via


Source Excel

La source Excel extrait des données de feuilles de calcul ou de plages dans des classeurs Microsoft Excel.

La source Excel fournit quatre modes d'accès aux données différents pour l'extraction des données :

  • Une table ou une vue.

  • Une table ou une vue spécifiée dans une variable.

  • Résultats d’une instruction SQL. La requête peut être une requête paramétrable.

  • Résultats d’une instruction SQL stockée dans une variable.

Important

Dans Excel, une feuille de calcul ou une plage est l’équivalent d’un tableau ou d’une vue. La liste des tableaux disponibles dans les éditeurs de source et de destination Excel affiche les feuilles de calcul existantes (identifiées par le signe $ ajouté au nom de la feuille de calcul, par exemple Sheet1$) et les plages nommées (identifiées par l’absence du signe $, comme MyRange). Pour plus d’informations, consultez la section Considérations relatives à l’utilisation.

La source Excel utilise à un gestionnaire de connexions Excel pour se connecter à une source de données ; ce gestionnaire spécifie le classeur à utiliser. Pour plus d'informations, consultez Excel Connection Manager.

La source Excel a une sortie normale et une sortie d'erreur.

Considérations sur l'utilisation

Le Gestionnaire de connexions Excel utilise le fournisseur Microsoft OLE DB pour Jet 4.0 et son pilote ISAM (Méthode d'accès séquentiel indexé) pour établir une connexion et lire et écrire des données vers des sources de données Excel.

De nombreux articles de la Base de connaissances Microsoft existants documentent le comportement de ce fournisseur et de ce pilote, et bien que ces articles ne soient pas spécifiques à Integration Services ou à son prédécesseur Data Transformation Services, vous souhaiterez peut-être connaître certains comportements pouvant entraîner des résultats inattendus. Pour obtenir des informations générales sur l’utilisation et le comportement du pilote Excel, consultez HOWTO : Utiliser ADO avec des données Excel à partir de Visual Basic ou VBA.

Les comportements suivants du fournisseur Jet avec le pilote Excel peuvent entraîner des résultats inattendus lors de la lecture de données à partir d’une source de données Excel.

  • Sources de données. La source de données d’un classeur Excel peut être une feuille de calcul à laquelle le signe $ doit être ajouté (par exemple, Sheet1$) ou une plage nommée (par exemple, MyRange). Dans une instruction SQL, le nom d’une feuille de calcul doit être délimité (par exemple, [Sheet1$]) pour éviter une erreur de syntaxe provoquée par le signe $. Le Générateur de requêtes ajoute automatiquement ces délimiteurs. Lorsque vous spécifiez une feuille de calcul ou une plage, le pilote lit le bloc contigu de cellules commençant par la première cellule non vide dans le coin supérieur gauche de la feuille de calcul ou de la plage. Par conséquent, vous ne pouvez pas avoir de lignes vides dans les données sources, ou une ligne vide entre les lignes de titre ou d’en-tête et les lignes de données.

  • Valeurs manquantes. Le pilote Excel lit un certain nombre de lignes (par défaut, 8 lignes) dans la source spécifiée pour deviner le type de données de chaque colonne. Lorsqu'il s'avère qu'une colonne combine différents types de données, notamment des données numériques avec des données texte, le pilote porte son choix sur le type de données majoritaire et retourne des valeurs NULL dans les cellules qui contiennent des données de l'autre type. En cas d'égalité, le type numérique l'emporte. La plupart des options de mise en forme de cellule dans la feuille de calcul Excel n'affectent pas cette détermination du type de données. Vous pouvez modifier ce comportement du pilote Excel en spécifiant le mode d’importation. Pour spécifier le mode d'importation, ajoutez IMEX=1 à la valeur des propriétés étendues dans la chaîne de connexion du gestionnaire de connexions Excel, dans la fenêtre Propriétés. Pour plus d’informations, consultez PRB : Valeurs Excel retournées en tant que NULL à l’aide d’OpenRecordset DAO.

  • Texte tronqué. Lorsque le pilote détermine qu'une colonne Excel contient des données texte, il sélectionne le type de données (string ou memo) en fonction de la valeur la plus longue qu'il échantillonne. Si le pilote ne découvre pas de valeurs comptant plus de 255 caractères dans les lignes échantillonnées, il traite la colonne comme une colonne de type string à 255 caractères et non comme une colonne de type memo. Par conséquent, les valeurs de plus de 255 caractères peuvent être tronquées. Pour importer des données à partir d’une colonne mémo sans troncation, vous devez vous assurer que la colonne mémo dans au moins une des lignes échantillonées contient une valeur supérieure à 255 caractères, ou vous devez augmenter le nombre de lignes échantillonné par le pilote pour inclure une telle ligne. Vous pouvez augmenter le nombre de lignes échantillonné en augmentant la valeur de TypeGuessRows sous la clé de Registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel . Pour plus d’informations, consultez PRB : Le transfert de données à partir de la source OLEDB Jet 4.0 échoue avec erreur.

  • Types de données. Le pilote Excel ne reconnaît qu'un ensemble limité de types de données. Par exemple, toutes les colonnes numériques sont interprétées comme doubles (DT_R8) et toutes les colonnes de type chaîne (autres que les colonnes mémo) comme des chaînes Unicode de 255 caractères (DT_WSTR). Integration Services mappe les types de données Excel comme suit :

    • Numérique - virgule flottante double précision (DT_R8)

    • Devise - devise (DT_CY)

    • Booléen - booléen (DT_BOOL)

    • Date/heure - datetime (DT_DATE)

    • Chaîne - chaîne Unicode, longueur 255 (DT_WSTR)

    • Mémo - flux de texte Unicode (DT_NTEXT)

  • Conversions de type de données et de longueur. Integration Services ne convertit pas implicitement les types de données. Par conséquent, vous devrez peut-être utiliser des transformations de conversion de colonnes ou de données dérivées pour convertir des données Excel explicitement avant de les charger dans une destination non Excel, ou pour convertir des données non Excel avant de les charger dans une destination Excel. Dans ce cas, il peut être utile de créer le package initial à l’aide de l’Assistant Importation et Exportation, qui configure les conversions nécessaires pour vous. Voici quelques exemples de conversions qui peuvent être requises :

    • Conversion entre les colonnes de chaîne Excel Unicode et les colonnes de chaîne non Unicode avec des pages de code spécifiques

    • Conversion entre les colonnes de chaîne Excel de 255 caractères et les colonnes de chaîne de différentes longueurs

    • Conversion entre des colonnes numériques Excel double précision et des colonnes numériques d’autres types

Configuration d'une source Excel

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programmation.

Pour plus d’informations sur les propriétés que vous pouvez définir dans la boîte de dialogue Éditeur de source Excel , cliquez sur l’une des rubriques suivantes :

La boîte de dialogue Éditeur avancé reflète toutes les propriétés qui peuvent être définies par programmation. Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue Éditeur avancé ou par programmation, cliquez sur l'une des rubriques suivantes :

Pour plus d’informations sur le bouclage dans un groupe de fichiers Excel, consultez Effectuer une boucle dans des fichiers et des tables Excel en utilisant un conteneur de boucles Foreach.