64 votes

L'importation de feuille de calcul Excel colonnes dans la base de données SQL Server

J'ai une feuille de calcul Excel que je veux importer sélectionner les colonnes dans mon SQL Server 2008 table de base de données. La wiz ne proposent pas cette option.

Faciles options de code?

50voto

Tejas Points 349

Une fois connecté à Sql Server 2005 de la Base de données, à Partir de la Fenêtre Explorateur d'Objets, cliquez-droit sur la base de données à laquelle vous souhaitez importer la table. Sélectionnez Tâches -> Importer Des Données. C'est un outil simple et vous permet de faire correspondre les données entrantes dans la table appropriée. Vous pouvez enregistrer les scripts pour exécuter à nouveau si nécessaire.

25voto

inspite Points 8872

Microsoft suggèrent plusieurs méthodes:

  • SQL Server DTS (Data Transformation Services)
  • Microsoft SQL Server 2005 Integration Services (SSIS)
  • SQL Server serveurs liés
  • Les requêtes distribuées SQL Server
  • ActiveX Data Objects (ADO) et le Fournisseur Microsoft OLE DB pour SQL Server
  • ADO et le Fournisseur Microsoft OLE DB pour Jet 4.0

Si l'assistant (DTS) ne fonctionne pas (et je pense qu'il devrait), vous pouvez essayer quelque chose comme cela http://www.devasp.net/net/articles/display/771.html ce qui suggère de faire quelque chose comme

INSERT INTO [tblTemp] ([Column1], [Column2], [Column3], [Column4])

SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4]
FROM OPENROWSET 
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\Excel.xls;HDR=YES', 'select * from [Sheet1$]') AS A;

12voto

Nick Kavadias Points 4557

Cela peut sembler long, mais vous voudrez peut-être chercher à l'aide d' Excel pour générer INSÉRER le code SQL que vous pouvez passé dans l'Analyseur de Requêtes pour créer votre table.

Fonctionne bien si vous ne pouvez pas utiliser les assistants parce que le fichier excel n'est pas sur le serveur

7voto

SqlACID Points 3128

Vous pouvez utiliser la fonction OPENROWSET, quelque chose comme:

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
  'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'

Juste assurez-vous que le chemin d'accès est un chemin sur le serveur, pas sur votre machine locale.

4voto

abk Points 31
go
sp_configure 'show advanced options',1  
reconfigure with override  
go  
sp_configure 'Ad Hoc Distributed Queries',1  
reconfigure with override  
go
SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=C:\Documents and Settings\abhisharma\Desktop\exl\ImportExcel2SQLServer\ImportExcel2SQLServer\example.xls;IMEX=1',
                'SELECT * FROM [Sheet1$]')

select * from temptable

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X