Gérer la détection du type de données des fichiers Excel chargés avec SSIS




L’ intégration des fichiers Excel via SSIS vous oblige à figer le type de données dans le composant OLEDB. En effet, le type de données Excel est déterminé dans SSIS par un échantillonnage des 8 premières lignes de la colonne par défaut dans le composant OLEDB pour les sources Excel. Donc, afin d’intégrer un fichier avec le format qui y correspond il vous faudra faire en sorte que les premières lignes du fichier soient du bon type. Vous avez également la possibilité de changer le nombre de lignes échantillonnées par le driver (Access Database Engine 12.0) en changeant la clef de registre comme ci-dessous.

 

Modifier la détection du type de données des fichiers Excel chargés avec SSIS

  1. Ouvrir l’éditeur de registre, pour ce faire, aller dans le menu démarrer, taper regedit.
  2. Rendez vous dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel 
  3. Changer la valeur de la clef appelée TypeGuessRows. Vous pouvez entrer des valeurs pour TypeGuessRows uniquement comprises entre 0 à 16 en décimal.

 

Exemple typique de problèmes rencontrés lors de chargement de fichiers Excel avec SSIS

L’erreur la plus récurrente est de tenter d’intégrer un fichier Excel ayant des colonnes avec des chaînes supérieures à 255 caractères. Si les lignes échantillonnées ne contiennent aucune chaîne ayant un nombre supérieure à 255 caractères, le type de données détecté par SSIS dans le fichier Excel qui sera assigné à la colonne est : DT_WSTR(255) et non pas N_TEXT, de plus, la totalité des lignes supérieures à 255 caractères vont être tronquées.