Eksport danych z Excel do SQL Server

Dodane 07 lipca 2007 o 00:56:23 w kategorii ' windows '.

Zabawę z przenoszeniem danych pomiędzy programem Excel, a SQL Server prezentują odpowiednie artykuły na stronach Knowledge Base Microsoftu.

Ze względu na potrzebę przeniesienia informacji z arkusza do bazy danych, wykorzystałem możliwość kwerend rozproszonych. Wystarczy znać odpowiednią składnię polecenia OPENROWSET, a wszystko staje się proste. Do połączenia z MS Excel potrzebujemy wykorzystać Microsoft.Jet.OLEDB.4.0.

W uruchomionym SQL Server Management Studio Express na naszej bazie danych wybieramy New Query. Następnie wpisujemy polecenie wybrania wszystkich informacji z arkusza danych arkusz pliku C:\przykladowy.xls i utworzenia z nich nowej tabeli dane_pobrane:

SELECT * INTO dane_pobrane FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\przykladowy.xls', [arkusz$])

Jeżeli zamierzamy pobrać tylko daną kolumnę z arkusza danych, możemy zmodyfikować trzeci parametr polecenia OPENROWSET:

SELECT * INTO dane_pobrane FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\przykladowy.xls', 'Select kolumna1 FROM [arkusz$]')

Uwaga
By móc skorzystać z polecenia OPENROWSET na serwerze potrzebujemy włączyć jego obsługę. Dokonuje się tego w SQL Server Surface Area Configuration wybierając Surface Area Configuration For Features oraz zakładkę Ad Hoc Remote Queries. Domyślnie ta opcja jest wyłączona.

Uwaga 2
Przy argumencie Database ścieżka do pliku nie może zawierać nazw katalogów oddzielonych spacjami.




(c) 2006, Powered by JoggerPL.