Comment importer un fichier Excel dans SQL Server ?

Le système de gestion de bases de données SQL Server est développé par la société Microsoft. Il est concurrent avec MySQL ou PostgreSQL par exemple. Il bénéficie d'une meilleure interaction avec les produits Microsoft. Il est possible d'importer ainsi un fichier Excel directement dans votre base de données. S'il s'agit d'un import simple (sans calcul particulier), alors vous n'avez pas besoin de développer un script pour cela.

Microsoft propose une interface permettant de gérer de manière plus confortable une base de données. Il s'agit du logiciel SQL Server Management Studio. Connectez-vous avec le logiciel à votre base de données. Cliquez ensuite sur le menu "Import de données". Un utilitaire d'import va s'afficher à l'écran. Dans la liste des sources prises en charge, choisissez "Excel". Sélectionnez ensuite votre fichier. Choisissez la version d'Excel (97-2003 correspond au fichier se terminant par ".xls", 2007 ou une version plus récente correspond à l'extension ".xlsx"), puis cochez la case indiquant que la première ligne correspond aux entêtes si vous êtes dans ce cas. Dans l'écran suivant, sélectionnez votre base de données et vos paramètres pour vous authentifier auprès du serveur. L'écran suivant propose différentes possibilités d'import. Choisissez "Copier les données d'une ou plusieurs tables ou vues". Sélectionnez ensuite les feuilles de votre fichier Excel que vous souhaitez importer avec la table de destination. Cliquez sur "Terminer" pour lancer le processus d'import.

Dans le cas où vous n'avez pas d'interface graphique, il est quand même possible d'importer les données d'un fichier Excel. Il faut pour cela faire appel à la fonction SQL Server "OPENROWSET". Combinée à un SELECT dans la table qui va recevoir les données, elle ouvre un fichier Excel pour en effectuer un import. Elle prend en paramètre le driver à utiliser pour traiter le fichier. Pour un fichier XLSX, utilisez le driver "Microsoft.ACE.OLEDB.12.0", alors que pour un fichier XLS, il faut indiquer "Microsoft.Jet.OLEDB.4.0". Vous devez installer le drive en conséquence sur la machine. Vous devez ensuite indiquer une chaîne de caractères avec la version d'Excel (12.0 pour un fichier XLSX, 8.0 pour un fichier XLS), suivie du chemin vers votre fichier Excel. Le dernier paramètre est la requête qui va récupérer les données. Vous pouvez donc, avec cette requête, sélectionner les feuilles et colonnes à importer.

SELECT * INTO table_destination FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0,Database=C:\chemin\monFichierExcel.xlsx',
    'SELECT * FROM [Feuill1$]')