Šiuo metu esate neprisijungę, laukiama, kol iš naujo prisijungsite prie interneto

Kaip importuoti duomenų iš programos Excel į SQL serverio

SVARBU: šis straipsnis išverstas naudojant „Microsoft“ mašininio vertimo programinę įrangą ir gali būti pataisytas naudojant „Community Translation Framework“ (CTF) technologiją. „Microsoft“ siūlo mašinos išverstus, bendruomenės suredaguotus ir žmogaus išverstus straipsnius siekdama daugeliu kalbų suteikti prieigą prie visų savo žinių bazės straipsnių. Mašinos išverstuose ir vėliau paredaguotuose straipsniuose gali būti žodyno, sintaksės ir / arba gramatikos klaidų. „Microsoft“ neatsako už jokius netikslumus, klaidas arba žalą, klientų patirtą dėl neteisingo turinio vertimo arba naudojimosi juo. Daugiau apie CTF žr. http://support.microsoft.com/gp/machine-translation-corrections.

Spustelėkite čia, norėdami pamatyti šio straipsnio versiją anglų kalba: 321686
Santrauka
Šiame straipsnyje nuosekliai parodo, kaip importuoti duomenis iš Microsoft Excel darbalapius į Microsoft SQL serverio duomenų bazių naudojant įvairius metodus.

back to the top

Aprašymas technika

Mėginių šiame straipsnyje importuoti "Excel" duomenis naudojant:
  • SQL serverio duomenų transformavimo paslaugų (DTS)
  • Microsoft SQL Server 2005 integracijos paslaugas (SSIS)
  • Susieta SQL serveris Serveriai
  • SQL serveris paskirstyti klausimų
  • ActiveX duomenų objektai (ADO) ir Microsoft OLE DB teikėjas SQL Server
  • ADO ir Microsoft OLE DB teikėjas Jet 4.0
back to the top

Reikalavimai

Šiame sąraše bendrais bruožais rekomenduojama aparatūros, programinės įrangos, tinklo infrastruktūros ir pakeitimų paketus, reikia:
  • Galima pavyzdžiui, Microsoft SQL Server 7.0 arba Microsoft SQL Server 2000 arba Microsoft SQL Server 2005
  • Microsoft Visual Basic 6.0 ADO mėginių, naudokite Visual Basic
Šio straipsnio dalys, manoma, kad esate susipažinę su šiomis temomis:
  • Duomenų transformavimo paslaugų
  • Susietų serveriai ir paskirstyti užklausų
  • ADO plėtros Visual Basic
back to the top

Mėginiai

Importo vs papildymo

Mėginio SQL sakiniais, kurie naudojami šiame straipsnyje parodyti kurti lentelės sudarymo užklausas, kad Excel duomenis importuoti į naują SQL serverio lentelę naudojant pasirinkti...Į...IŠ sintaksės. Galite konvertuoti šiuos teiginius į papildymo užklausas naudodami INSERT INTO...PASIRINKITE...IŠ sintaksės o jūs ir toliau nurodyti šaltinio ir paskirties objektų, kaip parodyta šių kodo pavyzdžių.

back to the top

DTS arba SSIS

Norėdami importuoti "Excel" duomenis į SQL serverio lenteles galite naudoti SQL serverio duomenų transformavimo paslaugas (DTS) importavimo vedlį arba SQL serveryje importavimo ir eksportavimo vedlį. Kada jūs žengia per vedlį ir pasirinkdami "Excel" šaltinio lentelių, Atminkite, kad Excel objektų pavadinimus, kuri yra su dolerio ženklas ($) atstovauti darbalapių (pvz., Lapas1$), ir kad paprastas objektų pavadinimai be dolerio ženklas yra Excel Pavadintų diapazonų.

back to the top

Naudoti susietąjį serverį

Siekiant supaprastinti užklausas, galite sukonfigūruoti programos Excel darbaknygę kaip susijęs serverio SQL Server.Norėdami gauti papildomos informacijos, spustelėkite toliau straipsnio numerį peržiūrėkite straipsnį Microsoft žinių bazėje:
306397 HOWTO: Naudoti Excel su SQL serveriu susijusios serveriai ir paskirstyti užklausų
Šį kodą importuoja duomenis iš "Excel" susijęs serverio "EXCELLINK" į naują SQL serverio lentelę pavadintas XLImport1 darbalapį klientai:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]				
Taip pat galite vykdyti užklausą prieš šaltinis passthrough būdu naudojant ATIDARYTI_UŽKLAUSĄ taip:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,    'SELECT * FROM [Customers$]')				
back to the top

Naudoti paskirstyti užklausų

Jei nenorite sukonfigūruoti nuolatinis ryšys su programos Excel darbaknygę kaip susietąjį serverį, galite importuoti duomenis konkrečiam tikslui naudojant į OPENDATASOURCE arba OPENROWSET funkcija. Šie kodo pavyzdžių taip pat importuoti duomenis iš Excel Klientai darbalapį į naują SQL serverio lenteles:
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

Naudokite ADO ir SQLOLEDB

Kai jūs prisijungėte prie SQL serverio taikomojoje programoje, ADO naudojant Microsoft OLE DB už SQL serverio (SQLOLEDB), galite naudoti tą patį "užklausoje" sintaksė nuo to Naudojant paskirstyti užklausų skyriuje importuoti "Excel" duomenis į SQL serverį.

Šis Visual Basic 6.0 kodo pavyzdys reikalauja, kad pridėti projekto nuorodą į ActiveX Data Objects (ADO). Šis kodo pavyzdys taip pat rodo, kaip naudotis OPENDATASOURCE ir OPENROWSET SQLOLEDB ryšį.
    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

Naudokite ADO ir Jet teikėjas

Mėginio ankstesniame sekcijoje naudoja ADO SQLOLEDB teikėjo prisijungti prie savo "Excel" į SQL importo paskirties. Taip pat galite OLE DB teikėjas Jet 4.0 prisijungti prie Excel šaltinio.

Jet duomenų bazės variklis galite nurodyti išorės duomenų bazių SQL sakiniuose naudojant specialią sintaksę, kuris trimis skirtingais formatais:
  • [Visą kelią į Microsoft Access duomenų bazės].[Lentelės pavadinimas]
  • [ISAM pavadinimas;ISAM jungimosi eilutę].[Lentelės pavadinimas]
  • [ODBC;ODBC jungimosi eilutę].[Lentelės pavadinimas]
Šiame skyriuje naudoja trečiųjų forma, kad ODBC ryšio su paskirties SQL serverio duomenų bazės. Jūs galite naudoti, ODBC duomenų šaltinio pavadinimą (DSN) arba DSN-mažiau jungimosi eilutę:
DSN:    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]DSN-less:   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;       UID=<user>;PWD=<password>]				
Šis Visual Basic 6.0 kodo pavyzdys reikalauja, kad pridėti projekto nuoroda į triukšmo. Šis kodo pavyzdys rodo, kaip importuoti "Excel" duomenis į SQL serverį ADO ryšį naudojant Jet 4.0 teikėjas.
    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				
Taip pat galite naudoti šią sintaksę, kurie Jet teikėjas palaiko, importuoti "Excel" duomenis į kitų Microsoft Access duomenų bazes, indeksuota nuoseklios kreipties metodu (ISAM) ("desktop") duomenų bazių arba ODBC duomenų bazės.

back to the top

Trikčių šalinimas

  • Atminkite, kad programa Excel objektų pavadinimus, kuri yra su dolerio ženklas ($) sudaro darbalapių (pvz., Lapas1$) ir kad paprastas objektų pavadinimus sudaro Excel Pavadintų diapazonų.
  • Kai kuriais atvejais, ypač kai paskiriate Excel šaltinio duomenis naudojant lentelės pavadinimą vietoj atrankos užklausą, paskirties SQL serverio lentelės stulpeliai pertvarkomi pagal abėcėlę.Papildomos informacijos apie šią problemą su Jet teikėju, spustelėkite toliau straipsnio numerį peržiūrėkite straipsnį Microsoft žinių bazėje:
    299484 PRB: Stulpeliai yra rūšiuojami pagal abėcėlę naudodami ADOX gauti prieigą lentelės skiltys
  • Kai Jet teikėjas nustato, kad Excel stulpelyje yra mišraus teksto ir skaitinių duomenų, Jet teikėjas pasirenka "dauguma" duomenų tipą ir pateikia nesuderinto reikšmes kaip neapibrėžtas reikšmes.Papildomos informacijos apie tai, kaip išspręsti šią problemą, spustelėkite toliau straipsnio numerį peržiūrėkite straipsnį Microsoft žinių bazėje:
    194124 PRB: Excel reikšmės, grąžintos kaip NULL naudojant DAO OpenRecordset
back to the top
Nuorodos
Papildomos informacijos apie tai, kaip naudoti Excel kaip duomenų šaltinį, spustelėkite toliau straipsnio numerį peržiūrėkite straipsnį Microsoft žinių bazėje:
257819 HOWTO: Naudokite ADO su Excel duomenimis iš Visual Basic arba VBA
Papildomos informacijos apie tai, kaip perkelti duomenis į Excel, spustelėkite žemiau straipsnių numerį peržiūrėkite straipsnius Microsoft žinių bazėje:
295646 HOWTO: Perkelti duomenis iš ADO duomenų šaltinio Excel su triukšmo
247412 INFO: Metodai perkeliant duomenis į programą Excel iš Visual Basic
246335 HOWTO: Perkelti duomenis iš ADO įrašų rinkinys į Excel su automatika
319951 KAIP: Perkelti duomenis į Excel naudojant SQL serverio duomenų transformavimo paslaugų
306125 KAIP: Importuoti duomenis iš SQL serverio į programą Microsoft Excel
back to the top
"Excel" sql ado dts sqloledb jet

Įspėjimas: šis straipsnis išverstas automatiškai

Savybės

Straipsnio ID: 321686 – Paskutinė peržiūra: 04/25/2013 07:34:00 – Peržiūra: 2.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 2005 Server Enterprise, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL 2005 Server Workgroup

  • kbhowtomaster kbjet kbmt KB321686 KbMtlt
Atsiliepimai
ody>l = ""; document.write(" t=">