Published on

February 5, 2024

Comment charger des fichiers Excel avec plusieurs onglets dans SQL Server

De nombreuses organisations ont besoin de charger des données à partir de feuilles de calcul Excel dans des bases de données SQL Server. Dans le passé, ce processus nécessitait l’utilisation d’outils tels que VBA, SSIS ou C#. Cependant, Microsoft a récemment introduit un connecteur Excel pour Azure Data Factory, ce qui simplifie le processus d’ingestion des données. Dans cet article, nous explorerons comment charger dynamiquement des fichiers Excel avec plusieurs onglets dans des tables SQL Server à l’aide d’Azure Data Factory.

Prérequis

Avant de commencer, assurez-vous d’avoir ce qui suit :

  • Une feuille de calcul Excel avec plusieurs onglets
  • Un compte Azure Data Lake Storage Gen2
  • Une base de données Azure SQL

Étape 1 : Charger la feuille de calcul Excel dans Azure Data Lake Storage Gen2

Tout d’abord, téléchargez la feuille de calcul Excel contenant plusieurs onglets dans votre compte Azure Data Lake Storage Gen2. Cela servira de source pour nos données.

Étape 2 : Créer des services liés et des jeux de données

Dans Azure Data Factory, créez un service lié pour votre compte Azure Data Lake Storage Gen2. Cela vous permettra d’accéder à la feuille de calcul Excel.

Ensuite, créez un jeu de données pour la feuille de calcul Excel. Assurez-vous de configurer le jeu de données pour inclure le nom de la feuille en tant que paramètre dynamique. Activez également l’option “Première ligne comme en-tête” si votre feuille de calcul contient des en-têtes.

Créez un jeu de données de destination pour votre table cible Azure SQL. Ce jeu de données doit être connecté à votre base de données Azure SQL.

Étape 3 : Charger plusieurs feuilles Excel dans une seule table SQL Server

Pour charger plusieurs feuilles Excel dans une seule table SQL Server, créez un pipeline dans Azure Data Factory.

Ajoutez une activité de boucle ForEach au canevas du pipeline. Configurez la boucle pour itérer sur les noms des feuilles de la feuille de calcul Excel.

Dans l’activité de boucle, ajoutez une activité de copie (CopyActivity) pour copier les données de chaque feuille dans la table SQL Server. Assurez-vous de définir l’option de table sur “Créer automatiquement la table” si la table n’existe pas.

Après avoir exécuté le pipeline, vous verrez que toutes les feuilles de la feuille de calcul Excel ont été chargées dans la table SQL Server.

Étape 4 : Charger plusieurs feuilles Excel dans plusieurs tables SQL Server

Si vous souhaitez charger chaque feuille Excel dans une table SQL Server distincte, suivez ces étapes :

Créez une table de recherche dans votre base de données SQL Server qui fait correspondre chaque nom de feuille à un nom de table.

Créez un jeu de données pour la table de recherche dans Azure Data Factory. Configurez le jeu de données pour inclure le nom de la feuille en tant que paramètre.

Dans la connexion du jeu de données Azure SQL Database, ajoutez un paramètre pour le nom de la table.

Dans le pipeline, ajoutez une activité de recherche (lookup activity) pour récupérer le nom de la table pour chaque feuille à partir de la table de recherche.

Dans l’activité de boucle ForEach, ajoutez une activité de copie (CopyActivity) pour copier les données de chaque feuille dans la table SQL Server correspondante. Assurez-vous de définir l’option de table sur “Créer automatiquement la table” si la table n’existe pas.

Après avoir exécuté le pipeline, vous verrez que chaque feuille de la feuille de calcul Excel a été chargée dans une table SQL Server distincte, en fonction des correspondances définies dans la table de recherche.

En suivant ces étapes, vous pouvez facilement charger des fichiers Excel avec plusieurs onglets dans SQL Server à l’aide d’Azure Data Factory. Cela offre un moyen rationalisé et efficace d’ingérer des données à partir de feuilles de calcul Excel dans vos bases de données SQL Server.

Article Last Updated: 2021-07-06

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.