Import dat z aplikace Excel na SQL Server

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
Souhrn
Tento článek ukazuje, jak importovat data z listů aplikace Microsoft Excel do Microsoft SQL Server databází pomocí různých metod.

back to the top

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
back to the top

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
back to the top

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.

back to the top

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.

back to the top

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$]')				
back to the top

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$]')				
back to the top

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				
back to the top

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.

back to the top

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
back to the top
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
back to the top
aplikace Excel sql ado dts sqloledb jet

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 321686 - Poslední kontrola: 07/04/2012 04:07:00 - Revize: 11.0

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

  • kbhowtomaster kbjet kbmt KB321686 KbMtcs
Váš názor