2009-07-20 7 views
0

Je dois importer toutes les valeurs d'un fichier Excel dans une table temporaire/physique dans SQL Server 2005. Je n'ai pas besoin de la méthode d'importation Importer. J'ai essayé la méthode de serveur lié suivant:Exportation d'un serveur Excel vers SQL Server Table temporaire

SELECT * 
INTO db1.dbo.table1 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\renju.xls', 
    'SELECT * FROM [sheet1$]') 

Mais il est returing une erreur:

fournisseur OLE DB "Microsoft.ACE.OLEDB.12.0" pour le serveur lié "(null)" message renvoyé " Impossible de trouver l'ISAM installable. ". J'utilise Excel 2003 et j'ai déjà ajouté le serveur lié pour "Microsoft.Jet.OLEDB.4.0."

+0

Renju Enregistrez-vous s'il vous plaît. Utiliser des réponses comme des commentaires à quelqu'un d'autre n'est pas la meilleure idée et cela rend les choses très difficiles. Ce n'est pas un forum ordinaire, c'est Q/A. – MadBoy

Répondre

0

Integration Services/SSIS Assistant d'importation et d'exportation.

0

Si vous avez un serveur lié configuré, vous pouvez utiliser la syntaxe suivante:

select * from openquery(LinkedServerName, 'select * from [Sheet1$]') 
0

Je pense que table1 ne devrait pas déjà être créé pour que cela fonctionne, et table1 auront les mêmes colonnes que la feuille Excel . Est-ce que c'est ce que tu veux?

Vous pouvez essayer d'utiliser OpenDataSource si cela n'a pas été corrigé. Ce sera un peu plus lent que OpenRowSet dans la performance:

INSERT INTO db1.dbo.table1 
     SELECT * 
     FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 
          'Data Source="c:\renju.xls"; 
          Extended properties=Excel 8.0')...Sheet1$ 

Vous pouvez également essayer propriétés étendues = Excel 5.0 si elle ne fonctionne pas.

Questions connexes