Charger des cellules Excel avec SSIS

Lorsque vous lancez le chargement d’un fichier Excel depuis SSIS, il est parfaitement possible de cibler une plage bien définie de cellules Microsoft Excel à charger. Cependant, la plage sera contiguë, en d’autres termes, les cellules Excel à charger se toucheront.

Charger uniquement une plage de cellules spécifiques d’un fichier Excel avec SSIS

D’autre part, pour charger une plage Excel où les cellules sont séparées ou encore seulement certaine cellules Excel ciblées. Il est nécessaire de passer par un développement de flux de données SSIS spécifique pour traiter chaque plage séparément.

Pour charger une plage entière de cellules Excel, il est nécessaire d’écrire une requête sur mesure. Cette requête permet de préciser de manière flexible quelles sont les cellules à charger.

Les tableurs Excel sont extraordinairement puissants et pratiques.

Premier exemple pour charger une plage Excel entière avec SSIS

Dans ce premier exemple de requête SQL, la requête permet de récupérer toutes les cellules d’un tableau Excel. C’est à dire de la 3ème à la 10ème ligne, et de la colonne A jusqu’à la colonne D du fichier Microsoft Excel à charger dans SSIS.

Que les données soient stockées ou non dans un tableau Excel ne changent pas la procédure.

Autrement dit cette requête charge les cellules Excel sans filtrer les données en amont.

SELECT * FROM [Feuil1$A3:D10]

Deuxième exemple pour charger une plage et filtrer les lignes vides

Dans ce deuxième exemple, la requête SQL permet de filtrer les données. Et donc de sélectionner toutes les lignes avec la première cellule de la zone sélectionnée non nulle. Et à partir de la 3ème à la 10ème ligne, de la colonne A jusqu’à la colonne D, du fichier Microsoft Excel.

SELECT * FROM [Feuil1$A3:D10] WHERE F1 IS NOT NULL

Noter que pour utiliser les noms de colonnes génériques du type F1, F2, F3, etc.

Pour construire la chaîne de connexion, utiliser une syntaxe similaire à celle ci:

Data Source=C:\dossier\fichier.xlsx;Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=”Excel 12.0 Xml;HDR=NO;IMEX=1″;

Il faut utiliser l’option HDR=NOpour ne pas activer la gestion des noms de colonnes. HDR est l’abbrèviation de Header.

Il est aussi possible de charger un fichier Excel dans une table avec l’assistant SQL Server.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*