Charger un fichier Excel avec SSIS dans une base SQL Server

Comment charger un fichier Excel avec SSIS ? Pour stocker un fichier XSL ou XLSX dans une base de données SQL Server, suivre les étapes ci-dessous. Ici, la cible est une base de données SQL Server. Avec SSIS, utiliser le composant natif Excel disponible dans les options au niveau du flux de données.

Charger un fichier Excel dans une base SQL Server avec un package Integration Services

Pour charger un ou plusieurs fichiers Excel dans une base de données SQL Server avec Visual Studio, créer tout d’abord un package SSIS.

1. Tout d’abord, ouvrir Visual Studio et créer un nouveau projet SSIS, puis cliquer sur Business Intelligence Projects puis sur Integration Services Project.

Créer un nouveau projet SSIS avec Visual Studio.
Créer un nouveau projet SSIS avec Visual Studio

2. Depuis l’espace de travail dans Visual Studio, dans la boîte à outils qui se trouve à gauche. Sélectionner Data flow Task, ou tâche de flux de données, et faire glisser le composant sur l’espace de travail. Puis double cliquer dessus.

Créer une tâche SSIS de Flux de données pour charger le fichier Excel dans la base SQL Server cible.
Créer une tâche SSIS de Flux de données (Data Flow Task)

Utiliser le composant SSIS Excel Source pour la connexion au fichier Excel

3. Désormais, depuis l’onglet Data Flow, sélectionner dans la boîte à outils le composant Excel Source et le faire glisser dans l’espace de travail.

Configurer le fichier Excel à charger avec SSIS et le composant Excel Source
Ajouter une source Excel comme source du flux de données

4. Double cliquer dessus et depuis la fenêtre Excel Source Editor, cliquer sur New, puis sur Browse. Sélectionner le fichier Excel à charger dans la base de données. Et sélectionner l’onglet à charger. Cliquer ensuite sur OK.

Noter qu’il est possible et recommandé par les experts de systématiquement utiliser des variables pour les projets avec de nombreux fichiers. Les variables permettent de rendre dynamiques le nom des onglets, des fichiers et des dossiers par exemple.

Configurer le composant Excel Source pour utiliser Excel Connection Manager
Utiliser Excel Connection Manager avec OLE DB

5. Maintenant, dans la boîte à outils, sélectionner le type de destination dans lequel charger le fichier Excel. Dans l’onglet Data Flow Destinations, dans notre cas, ce sera une base de données, choisir donc OLE DB destination. Et faire un glisser déposer dans le data flow. Ensuite relier les deux composants, Excel Source à OLE DB Destination à l’aide de la flèche.

Le composant SSIS Excel Source permet de charger les données sans une base SQL Server.
Préparer la connection à la base de données SQL Server de destination

6. Ensuite, double cliquer sur OLE DB destination, puis sur new, choisir la base de données dans laquelle charger le fichier, valider pour fermer la fenêtre.

Noter que la table cible est à créer au préalable. Voici comment créer une table SQL Server avec un script T-SQL simple.

Configuration de la table de destination de type OLE DB dans SSIS
Configuration de la destination de type OLE DB dans SSIS

La dernière étape est l’exécution du package et l’import du fichier Excel source dans la base

7. Enfin, cliquer sur le bouton exécution qui se trouve en haut de page. Ou appuyer sur F5, pour exécuter le package. L’exécution démarre le chargement du fichier. Le fichier Excel est ainsi chargé dans la base de données. Les composants SSIS Excel Source et OLE DB Destination deviennent vert, c’est donc un exécution réussie.

L'exécution du package charge les lignes depuis l'onglet Excel vers la table cible
Exécution du Data Flow depuis Excel vers Excel SQL Server

Par ailleurs, le nombre de lignes utilisées est visible à l’écran de Visual Studio. Le signe d’avertissement en jaune indique une potentielle troncation des caractères. Pour supprimer le warning, vérifier que les colonnes sources et cibles ont la même longueur dans les métadonnées. Par exemple CHAR(20) et des types de données compatibles.

1 Commentaire

  1. Tutoriel très pratique pour charger un fichier, par contre, comment automatiser à 100% un chargement Excel de manière dynamique ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*