Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

CoqBlog

.NET is good :-)
{ Blog de Gaël Covain }

Actualités

Classeurs Excel via OLEDB : et pour les versions 2007 (xlsb/xlsm/xlsx) ?

Avec les versions pre-2007 des fichiers Excel, nous avions l'habitude de pouvoir y accéder en tant que base de données fichier, via OLEDB en utilisant le moteur Jet, par une chaîne de connexion de ce type :

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties="Excel 8.0;HDR=YES;IMEX=1";

Mais Jet ne supporte pas l'ouverture des fichiers Excel 2007 (xlsb, xlsm et xlsx), ce qui vous sera signalé par l'erreur :

External table is not in the expected format.
Ou en français : La table externe n'est pas dans le format attendu.

Pour celà il faut passer par le nouveau "Microsoft Office 2007 Access Database Engine" :

Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 12.0;HDR=YES;IMEX=1";

Naturellement, vous pouvez aussi vous en servir pour accéder aux fichiers xls.

Si vous utilisez ceci dans un code destiné à tourner sur une configuration dépourvue d'Office 2007, vous aurez besoin du redistribuable, disponible sur le Download Center : 2007 Office System Driver: Data Connectivity Components :

This download will install a set of components that can be used by non-Microsoft Office applications to read data from 2007 Office system files such as Microsoft Office Access 2007 (mdb and accdb) files and Microsoft Office Excel 2007 (xls, xlsx, and xlsb) files. Connectivity to Microsoft Windows SharePoint Services and Text files is also supported.
ODBC and OLEDB drivers are installed for application developers to use in developing their applications with connectivity to Office file formats.

Utilisateurs d'Office 2003 et du pack de compatibilité pour les formats de fichier Word, Excel et PowerPoint 2007 : l'Access Database Engine n'est pas inclus dans le pack, pensez donc au redistribuable cité plus haut si vous ne voulez pas recevoir ce genre de réponse :

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
Ou en français : Le fournisseur 'Microsoft.ACE.OLEDB.12.0' n'est pas inscrit sur l'ordinateur local.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 21 septembre 2007 20:09 par coq
Classé sous : ,

Commentaires

coq a dit :

Voir aussi ce post si le problème se pose sous Vista 64 bit : http://blogs.codes-sources.com/coq/archive/2007/11/25/microsoft-ace-oledb-12-0-en-64-bit.aspx

# novembre 25, 2007 17:40
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [PowerShell 3] Télécharger et installer la documentation en ligne par Blog de SPBrouillet (Pierrick BROUILLET) le il y a 18 heures et 12 minutes

- [#SharePoint 2010][#SQLServer 2012] AlwaysOn pour SharePoint (1/4) : Configuration (1ère partie)… par Le blog de Patrick [MVP SharePoint] le il y a 23 heures et 38 minutes

- Job Day @MIC Brussels - .Net Developers on Mobile applications par Le Blog (Vert) d'Arnaud JUND le 05-15-2012, 20:26

- [SharePoint 2010] – SharePoint 2010, Windows (Server) 8 et des erreurs IIS sont dans une VM… par Blog de SPBrouillet (Pierrick BROUILLET) le 05-14-2012, 12:10

- [Event] Windows Azure dev Camp le 20 juin! par Fathi Bellahcene le 05-13-2012, 09:29

- Comment redimensionner une image avec WinRT : plusieurs solutions par Richard Clark le 05-11-2012, 15:43

- Event : Swiss SharePoint Club Meeting #20 à Yverdon par Blog Technique de Romelard Fabrice le 05-11-2012, 15:24

- Réflechissons un peu ce matin à propos des ORM par Richard Clark le 05-11-2012, 08:48

- #SharePoint Solutions Roadshow le 5 juin à Issy ! par Le blog de Patrick [MVP SharePoint] le 05-09-2012, 15:10

- SharePoint : Mes alertes ne marchent pas … Que faire ? Comment réparer ou agir ? par The Mit's Blog le 05-08-2012, 14:59