Kuidas importida andmed Exceli SQL Server

Artiklite tõlked Artiklite tõlked
Artikli ID: 321686 - Vaadake tooteid, millega see artikkel seostub.
Laienda kõik | Ahenda kõik

Sellel veebilehel

Kokkuvõte

Selles juhendavas artiklis demonstreerib impordi andmed Microsoft Exceli töölehtede Microsoft SQL serveri andmebaasidega kasutades erinevaid meetodeid.

Tehnika kirjeldus

See artikkel proovi importida Exceli andmete abil:
  • SQL Server andmeid Transformation Services (DTS)
  • Microsoft SQL Server 2005 integratsiooni teenused (SSIS)
  • SQL Server lingitud serverite
  • SQL serveri jaotatud päringud
  • ActiveX Data Objects (ADO) ja Microsofti ole-Andmebaasipakkuja teenuse SQL Server
  • ADO ja Jet 4.0 Microsoft OLE DB pakkuja

Nõuded

Järgnev loend visandab soovitatud riistvara, tarkvara, võrgu infrastruktuuri ja hoolduspakette, mis on vajalikud:
  • Saadaval näiteks Microsoft SQL Server 7.0, Microsoft SQL Server 2000 või Microsoft SQL Server 2005
  • ADO näidised, mida kasutada Visual Basicu Microsoft Visual Basic 6.0
See artikkel Oletame, et olete tuttav järgmisi teemasid:
  • Data Transformation Services
  • Lingitud serverite ja hajutatud päringud
  • ADO arengu Visual Basic

Proovid

Impordi vs lisamine

Proovi SQL-laused, mida kasutatakse käesolevas artiklis näidata Exceli andmete importimine uue SQL serveri tabeli abil valida Create Table päringute...ARVESSE...ALATES süntaksit. Võite teisendada need avaldused lisanduspäringute abil INSERT INTO...VALIGE...ALATES süntaks kui te jätkuvalt viide allika ja sihtkoha objektide nagu need koodi näidised.

DTS või SSIS

SQL serveri andmete Transformation Services (DTS) Import Wizard või SQL Server impordi- ja ekspordiviisardi abil saate Exceli andmete importimine SQL serveri tabelid. Millal on viisardi etapid ja Exceli lähtetabelite valimisel meeles, et Excel objektinimede koos dollarimärk ($) lisatakse esindavad töölehed (nt Leht1$) ja tavaline objektinimede ilma dollari märk esindab Exceli nimega vahemikud.

Kasuta lingitud serveri

Päringute lihtsustamiseks saate konfigureerida SQL serveri lingitud serveri Exceli töövihikuna.Lisateabe saamiseks klõpsake selle artikli Microsofti teabebaasi artikli kuvamiseks:
306397 HOWTO: Kasutamine Exceli SQL Server lingitud serverite ja jaotatud päringud
Järgmine kood imporditavate andmete hotelli töölehe Exceli lingitud serveri "EXCELLINK" uue SQL serveri tabelisse nimega XLImport1:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
Saab teostada ka allikas päring läbipääs viisil kasutades OPENQUERY järgmiselt:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

Kasutada hajutatud päringud

Kui te ei soovi konfigureerida pidev ühendus Exceli töövihikusse lingitud serveriga, saate importida andmeid sihtotstarbelisi ning OPENDATASOURCE või OPENROWSET funktsiooni abil. Koodi näidised importida Exceli hotelli töölehe andmeid ka uue SQL serveri tabelisse:
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$]')
				

ADO ja SQLOLEDB kasutamine

Kui teil on ühendatud SQL Server ADO rakenduses, kasutades Microsoft OLE DB SQL Server (SQLOLEDB), kasutage "jaotatud päringu" ühene: selle Hajutatud päringute abil Exceli andmete importimine SQL serveri jagu.

Visual Basic 6.0 koodinäidis nõuab projekti viite ActiveX Data Objects (ADO) lisamiseks. Koodinäidis näitab ka kuidas kasutada OPENDATASOURCE ja OPENROWSET SQLOLEDB-ühenduse kaudu.
    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
				

ADO ja Jet pakkuja

Proovi eelmises jaotises kasutab ADO SQLOLEDB pakkujaga ühendamiseks Exceli SQL impordi sihtkoht. Kui OLE DB Provider for Jet 4.0 abil saate ühendada Exceli allikas.

Jet-andmebaasi mootor viidata välised andmebaasid SQL-lausete abil süntaksi, millel on kolm erinevat võimalust:
  • [Microsoft Accessi andmebaasi täistee].[Tabeli nimi]
  • [ISAM nimi;ISAM Ühendusstring].[Tabeli nimi]
  • [ODBC;ODBC-Ühendusstring].[Tabeli nimi]
Käesolevas jaos kasutatakse kolmanda formaadis ODBC ühenduse sihtkoht SQL Serveri andmebaasiga. Võite kasutada ka ODBC andmete andmeallika nimi (DSN) või DSN-vähem ühendusstringi:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
				
Visual Basic 6.0 koodinäidis nõuab ADO projekti viite lisamiseks. Koodinäidis näitab, kuidas importida Exceli andmeid SQL serveri ADO-ühenduse abil Jet 4.0 pakkuja.
    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
				
Võite kasutada ka Jet pakkuja toetab Exceli andmete importimine teistest Microsoft Accessi andmebaaside, indekseeritud jadapääsu meetod (ISAM) ("desktop") andmebaasidest või ODBC-andmebaaside süntaksit.

Tõrkeotsing

  • Mäleta koos dollarimärk ($) lisatakse Exceli objektinimede tähistavad töölehed (nt Leht1$) ja et tavaline objektinimede Exceli nimega vahemikud.
  • Teatud olukordades, eriti siis, kui määrate Exceli lähteandmete kasutades tabeli nime asemel valikupäring, SQL Server sihttabeli veergude ümber korraldatakse tähestikulises järjekorras.Jet pakkuja selle probleemi kohta lisateabe saamiseks klõpsake selle artikli Microsofti teabebaasi artikli kuvamiseks:
    299484 PRB: Veergude sorditakse tähestikuliselt Accessi tabeli veergude ADOX kasutamisel
  • Kui Jet osutaja määratleb Excel veerg sisaldab segatud teksti ja arvandmeid, Jet pakkuja "enamus" andmetüüpi valib ja tagastab sobimatut väärtust tühiväärtusi.Lisateabe saamiseks selle probleemi klõpsake Microsofti teabebaasi artikli kuvamiseks allpool artiklinumbrit:
    194124 PRB: Excel väärtused tagastas NULL kasutades DAO OpenRecordset

Viited

Lisateabe saamiseks Exceli kasutamine andmeallikana klõpsake Microsofti teabebaasi artikli kuvamiseks allpool artiklinumbrit:
257819 HOWTO: Kasutada ADO Visual Basic või VBA Exceli andmed
Kandke andmed Excelisse, klõpsake Microsofti teabebaasi artiklite kuvamiseks artiklinumbreid:
295646 HOWTO: Edasta andmed ADO andmeallika Exceli ADO
247412 INFO: Meetodid andmete ülekandmise Exceli Visual Basic
246335 HOWTO: Edasta andmed ADO-kirjekomplekt Exceli automaatika
319951 KUIDAS: Kandke andmed Exceli SQL serveri andmete transformeerimisteenuseid kasutades
306125 KUIDAS: Impordi andmed SQL serveri Microsoft Excel

Atribuudid

Artikli ID: 321686 - Viimati läbi vaadatud: 4. detsember 2013 - Redaktsioon: 3.0
Kehtib järgmise lõigu kohta:
  • 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 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
Märksõnad: 
kbhowtomaster kbjet kbmt KB321686 KbMtet
Masintõlgitud
NB! Artikkel on tõlgitud Microsofti masintõlketarkvaraga ja seda saab parandada Kogukonnapõhise tõlkeraamistiku (CTF) tehnoloogiaga. Microsoft pakub masintõlgitud, kogukonna järeltöödeldud ja inimtõlgitud artikleid, et anda mitmekeelne juurdepääs kõigile meie teabebaasi artiklitele. Masintõlgitud ja järeltöödeldud artiklites võib olla sõnavara-, süntaksi- ja/või grammatikavigu. Microsoft ei vastuta mingite ebatäpsuste, tõrgete ega kahjude eest, mis on tulenenud sisu valest tõlkest või selle kasutamisest meie klientide poolt. Lisateavet CTF-i kohta leiate aadressilt http://support.microsoft.com/gp/machine-translation-corrections/et.
Artikli ingliskeelse versiooni kuvamiseks klõpsake siin: 321686

Andke tagasisidet

 

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