Ako importovať údaje z programu Excel na server SQL Server

Preklady článku Preklady článku
ID článku: 321686 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

V tomto krokovom preukáže ako importovať údaje z hárkov programu Microsoft Excel do databázy Microsoft SQL Server pomocou rôznych metód.

Popis techniky

Vzorky v tomto článku importovať údaje programu Excel pomocou:
  • SQL Server údajov transformačné služby (DTS)
  • Integráciu služieb Microsoft SQL Server 2005 (SSIS)
  • Serverov SQL Server, Spojené
  • Dotazy SQL Server distribuované
  • ActiveX Data Objects (ADO) a Microsoft OLE DB Provider for SQL Server
  • ADO a Microsoft OLE DB Provider for Jet 4.0

Požiadavky

Nasledujúci zoznam uvádza odporúčané hardvér, softvér, sieťovú infraštruktúru a balíky service pack, ktoré sú potrebné:
  • K dispozícii stupňa Microsoft SQL Server 7.0, Microsoft SQL Server 2000 alebo Microsoft SQL Server 2005
  • Microsoft Visual Basic 6.0 pre ADO vzorky, ktoré používajú Visual Basic
Časti v tomto článku sa predpokladať, že ste oboznámení s týchto tém:
  • Údaje transformačné služby
  • Prepojený servery a distribuované dotazy
  • ADO rozvoja v jazyku Visual Basic

Vzorky

Dovozné vs pripájací

Vzorové príkazy SQL, ktoré sa používajú v tomto článku preukázať vytvoriť vytvárací dotaz, ktorý importovať údaje programu Excel do novej tabuľky SQL Server pomocou vyberte...DO...Z syntax. Tieto výkazy môžete konvertovať na pripájacích dotazov pomocou vložiť do...VYBERTE...Z syntax, zatiaľ čo vy sa naďalej referenčné objekty zdrojových a cieľových, ako je uvedené v týchto vzorkách kód.

Použitie DTS alebo SSIS

Môžete použiť Sprievodcu importom SQL Server údajov transformácie služby (DTS) alebo SQL Server Import a exportom importovať údaje programu Excel do tabuľky servera SQL Server. Keď ste stupňujú prostredníctvom Sprievodcu a výberom zdrojové tabuľky programu Excel, nezabudnite, že názvy objektov programu Excel, ktoré sa pripájajú s znak dolára ($) predstavujú pracovných hárkov (napríklad Hárok1$), a že obyčajný object names bez toho, aby boli znak dolára predstavujú Excel pomenovaným rozsahom.

Použitie servera prepojené

Zjednodušiť dotazov, môžete nakonfigurovať zošita programu Excel ako prepojený server SQL Server.Ďalšie informácie, kliknite na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:
306397 HOWTO: Používanie programu Excel s SQL Server spojené servery a distribuované dotazy
Nasledujúci kód importuje údaje z pracovného hárka zákazníkov na serveri Excel prepojené "EXCELLINK" do novej tabuľky servera SQL Server s názvom XLImport1:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
Môžete tiež spustiť dotaz proti zdroji spôsobom prechádzania pomocou OTVORIŤDOTAZ takto:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

Použiť distribuovaných dotazy

Ak nechcete konfigurovať trvalého pripojenia do zošita programu Excel ako prepojený server, môžete importovať údaje pre špecifický účel pomocou OPENDATASOURCE alebo funkcia OPENROWSET. Tieto vzorky kód tiež importovať údaje z pracovného hárka programu Excel zákazníkov do novej tabuľky servera SQL Server:
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]

SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])

SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [Customers$]')
				

Použiť ADO a SQLOLEDB

Keď ste pripojení na server SQL Server v aplikácii ADO pomocou Microsoft OLE DB na SQL Server (SQLOLEDB), môžete použiť rovnakú syntax "distribuované dotaz" z Pomocou distribuovaných dotazy oddiel importovať údaje programu Excel do SQL Server.

Nasledujúca ukážka kódu Visual Basic 6.0 vyžaduje, aby ste pridali odkaz projektu na ActiveX Data Objects (ADO). Tiež táto vzorka kódu ukazuje, ako používať OPENDATASOURCE a OPENROWSET SQLOLEDB pripojenia.
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB;Data Source=<server>;" & _
        "Initial Catalog=<database>;User ID=<user>;Password=<password>"

    'Import by using OPENDATASOURCE.
    strSQL = "SELECT * INTO XLImport6 FROM " & _
        "OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', " & _
        "'Data Source=C:\test\xltest.xls;" & _
        "Extended Properties=Excel 8.0')...[Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and object name.
    strSQL = "SELECT * INTO XLImport7 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "[Customers$])"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and SELECT query.
    strSQL = "SELECT * INTO XLImport8 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "'SELECT * FROM [Customers$]')"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    cn.Close
    Set cn = Nothing
				

Použiť ADO a Jet poskytovateľa

Vzorky v predchádzajúcej časti používa ADO s SQLOLEDB poskytovateľom na pripojenie na miesto určenia vášho programu Excel na SQL dovozu. OLE DB Provider for Jet 4.0 môžete použiť aj na pripojenie k zdroju Excel.

Databázový nástroj Jet môžete odkaz externých databáz v príkazy SQL pomocou špeciálnu syntax, ktorá má tri rôzne formáty:
  • [Úplná cesta k databáze programu Microsoft Access].[Názov tabuľky]
  • [Knižnica ISAM názov;Knižnica ISAM reťazec pripojenia].[Názov tabuľky]
  • [ODBC;Reťazec pripojenia ODBC].[Názov tabuľky]
Tejto časti používa tretích formát, aby pripojenie ODBC na cieľovej databázy SQL Server. Môžete použiť názov zdroja údajov ODBC (DSN) alebo reťazec DSN-menej spojenie:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
				
Nasledujúca ukážka kódu Visual Basic 6.0 vyžaduje, aby ste pridali odkaz projektu na ADO. Táto vzorka kódu ukazuje, ako importovať údaje programu Excel na server SQL Server ADO pripojenia pomocou Jet 4.0 poskytovateľa.
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\test\xltestt.xls;" & _
        "Extended Properties=Excel 8.0"
    
    'Import by using Jet Provider.
    strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
        "Server=<server>;Database=<database>;" & _
        "UID=<user>;PWD=<password>].XLImport9 " & _
        "FROM [Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff
        
    cn.Close
    Set cn = Nothing
				
Môžete tiež použiť túto syntax, ktoré podporuje poskytovateľ Jet, importovať údaje programu Excel do iných databázy programu Microsoft Access, indexované Sekvenčný prístup metóda (Knižnica ISAM) ("ploche") databáz alebo ODBC databáz.

Riešenie problémov

  • Nezabudnite, že program Excel názvy objektov, ktoré sa pripájajú s znak dolára ($) predstavujú pracovných hárkov (napríklad Hárok1$) a že obyčajný objekt názvy predstavujú Excel pomenovaným rozsahom.
  • Za určitých okolností, najmä ak určíte zdroj údajov programu Excel pomocou názvu tabuľky namiesto výberový dotaz, stĺpce v tabuľke určenia SQL Server sú sústredené v abecednom poradí.Ďalšie informácie o tomto probléme s poskytovateľom Jet, po kliknutí na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:
    299484 PRB: Stĺpce sú zoradené abecedne načítať stĺpce tabuľky prístup pomocou ADOX
  • Keď Jet poskytovateľ určí, že Excel stĺpec obsahuje zmiešaný text a číselné údaje, Jet poskytovateľ vyberie typ údajov "väčšinou" a vráti nerovnocenné hodnoty null.Ďalšie informácie o tom, ako tento problém obísť, kliknutím na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:
    194124 PRB: Excel hodnoty vrátené ako NULL pomocou DAO OpenRecordset

ODKAZY

Ďalšie informácie o používaní programu Excel ako zdroj údajov, kliknite na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:
257819 HOWTO: Použiť ADO s údajmi programu Excel z programu Visual Basic alebo VBA
Dodatočné informácie o prenos údajov do programu Excel získate po kliknutí na nasledovné čísla článkov databázy Microsoft Knowledge Base:
295646 HOWTO: Prenášať údaje zo zdroja údajov ADO do programu Excel s ADO
247412 INFO: Metódy prenosu údajov do programu Excel z programu Visual Basic
246335 HOWTO: Prenášať údaje z množina záznamov súčasti ADO do programu Excel s automatizácie
319951 AKO: Prenos dát do Excel pomocou transformácie údajov SQL Server služby
306125 AKO: Importovať údaje do programu Microsoft Excel zo servera SQL Server

Vlastnosti

ID článku: 321686 - Posledná kontrola: 4. júla 2012 - Revízia: 4.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
Kľúčové slová: 
kbhowtomaster kbjet kbmt KB321686 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 321686

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com