APSQL

Travailler avec des données Excel

Il est fréquent d'avoir à importer des données depuis un fichier Excel. Lorsqu'il s'agit d'une simple importation l'assistant d'importation de données permet de réaliser cette tâche efficacement. Cependant il est parfois nécessaire de travailler avec des données issues d'une feuille Excel pour faire une mise à jour des données présentes dans la base. Pour ces opérations rien ne remplace la souplesse d'utilisation de OPENROWSET. L'instruction OPENROWSET va permettre de construire dynamiquement et localement à la requête une source de données.

Les paramètres de cette instruction sont:

  • Le fournisseur de données
  • La chaine de connexion
  • La requête

Dans le cas présenté ici les données se trouvent sur la feuille cpo dans le fichier cpo.xlsx, soit un fichier au format Excel 2007. Voici comment se présente le fichier

Extrait du fichier cpo.xlsx

Les paramètres à utiliser pour l'instruction OPENROWSET sont donc les suivant:

  • Fournisseur de données : Microsoft.ACE.OLEDB.12.0
  • Chaine de connexion: Excel 12.0;Database=C:\test\cpo.xlsx;
  • Requête : SELECT Commune, CodePos FROM [cpo$]

La requête à exécuter est donc:

SELECT * 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 12.0;Database=C:\test\cpo.xlsx;', 
'SELECT Commune, CodePos FROM [cpo$]');

Et le résultat est le suivant:

Resultat de l'exécution de OPENROWSET