Import dat z aplikace Excel na SQL Server

Překlady článku Překlady článku
ID článku: 321686 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak importovat data z listů aplikace Microsoft Excel do Microsoft SQL Server databází pomocí různých metod.

Popis techniky

V tomto článku vzorky importovat data aplikace Excel pomocí:
  • SQL Server Data Transformation Services (DTS)
  • Microsoft SQL Server 2005 Integration Services (direktivy SSI)
  • Propojený Server SQL servery
  • Dotazy SQL Server DFS
  • Datové objekty ActiveX (ADO) a Microsoft OLE DB Provider for SQL Server
  • Objekty ADO a zprostředkovatele Microsoft OLE DB Provider pro stroj Jet 4.0

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a požadované aktualizace service Pack:
  • Dostupné instance Microsoft SQL Server 7.0 nebo Microsoft SQL Server 2000 nebo 2005 Microsoft SQL Server
  • Microsoft Visual Basic 6.0 pro ADO vzorky, které pomocí jazyka Visual Basic
Části tohoto článku Předpokládejme, že jste obeznámeni s následující témata:
  • Data Transformation Services
  • Propojené servery a distribuovaných dotazy
  • ADO vývoj v jazyce Visual Basic

Vzorky

Import a připojit

Vzorové příkazy SQL, které jsou používány v tomto článku prokázat tabulky vytvořit dotazy, které import dat aplikace Excel do nové tabulky serveru SQL Server pomocí příkazu SELECT...DO...V syntaxi. Tyto příkazy můžete převést na přidávací dotaz pomocí příkazu INSERT INTO...VYBERTE...Z syntaxe při nadále odkazovat zdrojové a cílové objekty uvedené v těchto vzorcích kódu.

Použití DTS nebo direktivy SSI

Můžete použít Průvodce importem SQL Server Data Transformation Services (DTS) nebo SQL Server Průvodce importem a exportem dat aplikace Excel importovat do tabulky serveru SQL. Pokud jsou jednotlivé kroky průvodce a výběru zdrojových tabulek aplikace Excel, nezapomeňte, že listy (například List1$) představují názvy objektů aplikace Excel, které jsou připojeny pomocí znaku dolaru ($) a že představují názvy objektů obyčejný bez dolaru Excel pojmenované oblasti.

Pomocí propojeného serveru.

Pro zjednodušení dotazy, můžete nakonfigurovat sešitu aplikace Excel jako propojený server SQL Server.Další informace získáte v článku znalostní báze Microsoft Knowledge Base:
306397 POSTUPY: Použití aplikace Excel, serveru SQL Server propojené servery a dotazy
Následující kód importuje data z listu zákazníky na propojený server Excel "EXCELLINK" do nové tabulky serveru SQL Server s názvem XLImport1:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
Můžete také provést dotaz na zdroj passthrough způsobem pomocí OTEVŘÍTDOTAZ:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

Pomocí distribuovaných dotazů

Pokud nechcete nastavit trvalé připojení k sešitu aplikace Excel jako propojený server, můžete importovat data pro konkrétní účel pomocí OPENDATASOURCE nebo funkce OPENROWSET. Následující ukázky kódu také importovat data z listu aplikace Excel zákazníky do nové tabulky serveru 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žití objektů ADO a SQLOLEDB

Pokud jste připojeni k serveru SQL Server v aplikaci ADO pomocí Microsoft OLE DB pro SQL Server (SQLOLEDB), můžete použít stejnou syntaxi z "distribuovanou dotaz" Použití distribuovaných dotazů oddíl dat aplikace Excel importovat do serveru SQL Server.

Následující ukázka kódu jazyka Visual Basic 6.0 vyžaduje přidání projektu odkaz na datové objekty ActiveX (ADO). Tato ukázka kódu znázorňuje také použití OPENDATASOURCE a OPENROWSET přes připojení SQLOLEDB.
    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žití objektů ADO a zprostředkovatele Jet

Vzorek v předchozí části používá ADO zprostředkovatele SQLOLEDB připojení k cílové aplikaci Excel SQL import. Zprostředkovatele OLE DB Provider pro stroj Jet 4.0 můžete také připojit ke zdroji aplikace Excel.

Databázový stroj Jet lze referenční externích databází v příkazech SQL pomocí speciální syntaxe, která má tři různé formáty:
  • [Úplná cesta k databázi aplikace Microsoft Access].[Název tabulky]
  • [Název ISAM;Řetězec připojení ISAM].[Název tabulky]
  • [ODBC;Spojovací řetězec ODBC].[Název tabulky]
Tato část třetí formát používá k vytvoření připojení ODBC k cílové databázi serveru SQL Server. Můžete použít ODBC název zdroje dat (DSN) nebo řetězec bez DSN připojení:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
				
Následující ukázka kódu jazyka Visual Basic 6.0 vyžaduje přidání odkazu na projekt objektů ADO. Tento příklad kódu ukazuje, jak importovat data aplikace Excel na SQL Server přes připojení objektů ADO pomocí zprostředkovatele Jet 4.0.
    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 také použít tuto syntaxi zprostředkovatele Jet podporuje import dat aplikace Excel do jiných databází aplikace Microsoft Access, indexed sequential access metodu (ISAM) ("plochy") databáze nebo databází ODBC.

Poradce při potížích

  • Pamatujte, že názvy objektů aplikace Excel, které jsou připojeny pomocí znaku dolaru ($) představují listů (například List1$) a že představují názvy objektů obyčejný pojmenované oblasti aplikace Excel.
  • Za určitých okolností zejména při určení zdroje dat aplikace Excel pomocí názvu tabulky místo výběrového dotazu jsou sloupce v cílové tabulce serveru SQL Server změněno v abecedním pořadí.Další informace o tomto problému s zprostředkovatele Jet získáte v článku znalostní báze Microsoft Knowledge Base:
    299484 PRB: Sloupců jsou seřazeny abecedně při použití sloupců tabulky aplikace Access načíst rozšíření ADOX
  • Zprostředkovatele Jet Určuje, že aplikace Excel sloupec obsahuje smíšený text a číselná data, vybere "většinou" datový typ zprostředkovatele Jet a vrátí hodnoty odpovídající jako hodnoty Null.Další informace o tom, jak tento problém vyřešit získáte v článku znalostní báze Microsoft Knowledge Base:
    194124 PRB: NULL pomocí OpenRecordset knihovny DAO vracet hodnoty v aplikaci Excel

Odkazy

Další informace o použití aplikace Excel jako zdroj dat získáte v článku znalostní báze Microsoft Knowledge Base:
257819 POSTUPY: Použití objektů ADO s daty aplikace Excel z aplikace Visual Basic nebo VBA
Další informace o přenosu dat do aplikace Excel získáte v následujících článcích báze Microsoft Knowledge Base:
295646 POSTUPY: Přenos dat ze zdroje dat ADO do aplikace Excel s objekty ADO
247412 INFO: Metody přenosu dat do aplikace Excel z aplikace Visual Basic
246335 POSTUPY: Přenos dat z objektu ADO Recordset do aplikace Excel pomocí automatizace
319951 JAK: Přenos dat do aplikace Excel pomocí serveru SQL Server Data Transformation Services
306125 JAK: Import dat ze serveru SQL Server do aplikace Microsoft Excel

Vlastnosti

ID článku: 321686 - Poslední aktualizace: 4. července 2012 - Revize: 11.0
Informace v tomto článku jsou určeny pro produkt:
  • 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 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Klíčová slova: 
kbhowtomaster kbjet kbmt KB321686 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku: 321686

Dejte nám zpětnou vazbu

 

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