Bonjour,

Je tente, mais comme d'habitude sans succès, d'utiliser la fonction OPENROWSET pour extraire les données se trouvant dans un fichier Excel 2003 (.xls) contenant 2 Feuilles : 'AddOn' et 'Modifiers', se trouvant dans le dossier D:\.

L'instruction est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT *
FROM OPENROWSET
(
	'Microsoft.Jet.OLEDB.4.0',
	'Excel 8.0;Database=D:\Addons_Modifiers.xls',
	[Modifiers$]
)
qui produit l'erreur suivante :

Msg 7302, Level 16, State 1, Line 1
Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".
Or ce fournisseur est installé puisque je le trouve sous le nœud [monInstance]|Server objects|Linked Servers|Providers.

Même chose avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT *
FROM OPENDATASOURCE
(
	'Microsoft.Jet.OLEDB.4.0',
	'Data Source="D:\Addons_Modifiers.xls";Extended properties=Excel 8.0'
)...[AddOn$]
Il ne s'agit à priori pas d'un problème de droits en lecture sur le dossier, puisque si j'exécute :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
EXEC xp_cmdshell 'ECHO toto > D:\test.txt'
puis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
SELECT BulkColumn
FROM OPENROWSET(BULK 'D:\test.txt', SINGLE_CLOB) AS T
j'obtiens bien :

BulkColumn
-----------
toto
J'aimerai voir un jour fonctionner les instructions OPENROWSET et OPENDATASOURCE sur un fichier Excel.
Cela vous semble-t-il possible ?

@++