Sięganie do pliku Excel z SQL

3-kwi-2011

Jak czytać imodyfikować pliki excela z poziomu SQL? Można to zrobić za pomocą tzw. linked servers. Przejdź do Server Objects i utwórz nowy linked server:

Wypełnij okienkowłaściwości serwera:

 Nazwa widoczna u gory pozwoli następnie korzystać z danych zapisanych w pliku Excel.

Provider określa bibliotekę / sterownik, za pomocą którego będziesz sięgać do danych

Data source wskazuje na ścieżkę pliku Excel

Provider string zależy od wersji porgamu Excel. Dla Excela 2003 jest to Excel 8.0

Aby skorzystać z danych znajdujących się w pierwszym arkuszu skoroszytu (w wersji angielskiej excela) należy napisać:

SELECT * FROM IMPORT…Sheet1$

Do tej tabeli możesz także wstawiać dane wykorzystując zwykły INSERT.  Działa także zwykły UPDATE. Niestety nie można usuwać rekordów.

Komentarze:

  1. Mariusz napisał,

    A jak to zrobić w sql 2008 gdzie nie ma Microsoft jet 4.0?

  2. Rafał Kraik napisał,

    Prawdopodobnie masz SQL w wersji 64-bitowej. MS Jet 4.0 nie będzie już rozwijany na tę platformę:
    http://blogs.msdn.com/b/psssql/archive/2010/01/21/how-to-get-a-x64-version-of-jet.aspxMożna spróbować nowych sterowników x64 dostępnych tutaj:
    http://www.microsoft.com/en-us/download/details.aspx?id=13255

  3. Rafał Kraik napisał,

    To link do artykułu na SQL Server Central o podobnej tematyce. Chodzi o paczkę SSIS eksportującą dane do Excela 32 bit:
    http://www.sqlservercentral.com/articles/SQL+Server+Integration+Services/93895/

Autor: Rafał Kraik