Salt la conținutul principal
Asistență
Conectare

ExcelADO demonstrează cum să utilizați ADO pentru a citi și a scrie date în registrele de lucru Excel

Rezumat

Eșantionul ExcelADO. exe ilustrează modul în care puteți utiliza obiecte de date ActiveX (ADO) cu furnizorul Microsoft Jet OLE DB 4,0 pentru a citi și a scrie date în registrele de lucru Microsoft Excel.

Mai multe informații

De ce se utilizează ADO?

Utilizarea ADO pentru a transfera date sau a regăsi date dintr-un registru de lucru Excel vă oferă un dezvoltator, mai multe avantaje față de automatizare în Excel:

  • Performanță. Microsoft Excel este un server ActiveX absent de la proces. ADO rulează în proces și salvează supraîncărcarea apelurilor costisitoare din afara procesului.

  • Scalabilitate. Pentru aplicațiile web, nu este întotdeauna de dorit să automatizați Microsoft Excel. ADO vă prezintă o soluție mai scalabilă pentru a gestiona datele dintr-un registru de lucru.

ADO poate fi utilizat strict pentru a transfera date brute într-un registru de lucru. Nu puteți utiliza ADO pentru a aplica formate sau formule la celule. Cu toate acestea, puteți transfera date într-un registru de lucru care este pre-formatat și se menține formatul. Dacă aveți nevoie de formatare "condițională" după inserarea datelor, puteți realiza această formatare cu automatizare sau cu o macrocomandă în registrul de lucru.

Elemente specifice ale furnizorului cu Jet OLE DB pentru registrele de lucru Excel

Motorul de baze de date Microsoft Jet poate fi utilizat pentru a accesa date din alte formate de fișier de bază de date, cum ar fi registre de lucru Excel, prin intermediul driverelor de metodă Access (ISAM) indexate instalabile. Pentru a deschide formate externe acceptate de furnizorul OLE DB Microsoft Jet 4,0, specificați tipul de bază de date în proprietățile extinse pentru conexiune. Furnizorul Jet OLE DB acceptă următoarele tipuri de baze de date pentru registrele de lucru Microsoft Excel:

  • Excel 3,0

  • Excel 4,0

  • Excel 5,0

  • Excel 8,0

Notă: utilizați tipul de bază de date sursă Excel 5,0 pentru registrele de lucru microsoft Excel 5,0 și 7,0 (95) și utilizați tipul de bază de date sursă Excel 8,0 pentru registrele de lucru microsoft Excel 8,0 (97) și 9,0 (2000). Eșantionul ExcelADO. exe utilizează registre de lucru Excel în formatul Excel 97 și Excel 2000. Următoarele eșantioane demonstrează o conexiune ADO la un registru de lucru Excel 97 (sau 2000):

Dim oConn As New ADODB.ConnectionWith oConn    .Provider = "Microsoft.Jet.OLEDB.4.0"    .Properties("Extended Properties").Value = "Excel 8.0"    .Open "C:\Book1.xls"    '....    .CloseEnd With

sau

Dim oConn As New ADODB.ConnectionoConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=C:\Book1.xls;" & _           "Extended Properties=""Excel 8.0;"""oConn.Close

Convenții de denumire a tabeluluiExistă mai multe modalități de a face referire la un tabel (sau o zonă) într-un registru de lucru Excel:

  • Utilizați numele foii, urmat de semnul Dollar (de exemplu, [Foaie1 $] sau [foaia mea de lucru $]). Un tabel de registru de lucru la care se face referire în această manieră constă în întreaga zonă utilizată a foii de lucru.

    oRS.Open "Select * from [Sheet1$]", oConn, adOpenStatic
  • Utilizați o zonă cu un nume definit (de exemplu, [tabel1]).

    oRS.Open "Select * from Table1", oConn, adOpenStatic
  • Utilizați o zonă cu o anumită adresă (de exemplu, [Foaie1 $ a1: B10]).

    oRS.Open "Select * from [Sheet1$A1:B10]", oConn, adOpenStatic

Anteturile de tabelCu registrele de lucru Excel, primul rând dintr-o zonă este considerat ca fiind rândul antet (sau numele câmpurilor) în mod implicit. Dacă prima zonă nu conține anteturi, puteți specifica HDR = No în proprietățile extinse din șirul de conexiune. Dacă primul rând nu conține anteturi, furnizorul OLE DB denumește automat câmpurile pentru dumneavoastră (în care F1 ar reprezenta primul câmp, F2 ar reprezenta al doilea câmp și așa mai departe).Tipuri de dateSpre deosebire de o bază de date tradițională, nu există nicio modalitate directă de a specifica tipurile de date pentru coloanele din tabelele Excel. În schimb, furnizorul OLE DB scanează un număr limitat de rânduri dintr-o coloană pentru a "Ghici" tipul de date al câmpului. Numărul de rânduri pentru a scana valori implicite în opt (8) rânduri; aveți posibilitatea să modificați numărul de rânduri de scanat, specificând o valoare între unu (1) și șaisprezece (16) pentru setarea MAXSCANROWS din proprietățile extinse ale șirului de conexiune.

Fișiere incluse în eșantion

Fișierul ExcelADO. exe conține un proiect Visual Basic standard EXE, pagini Active Server (ASP), Excel 97 și registre de lucru Excel 2000 care acționează ca șabloane și o bază de date Microsoft Access 2000. Fișierele incluse sunt următoarele: fișiere deproiect Visual Basic standard exe

  • ExcelADO.vbp

  • Form1.frm

  • Form1.frx

Pagini Active Server

  • EmpData.asp

  • Orders.asp

Registre de lucru Microsoft Excel

  • OrdersTemplate.xls

  • EmpDataTemplate.xls

  • ProductsTemplate.xls

  • SourceData.xls

Bază de date Microsoft Access

  • Data.mdb

Cum se utilizează eșantionul

Extrageți conținutul fișierului. exe într-un folder.Pentru a utiliza proiectul Visual Basic:

  1. În Visual Basic, deschideți fișierul ExcelADO. VBP.

  2. În meniul Project , selectați referințe, apoi setați referințe la Microsoft ADO Ext. pentru DDL și securitate și biblioteca obiecte de date ActiveX Microsoft. Acest exemplu de cod funcționează cu ADO 2,5 și ADO 2,6, Deci Selectați versiunea corespunzătoare pentru computer.

  3. Apăsați tasta F5 pentru a executa programul. Apare un formular pentru demonstrație.

  4. Faceți clic pe eșantion 1. Acest eșantion creează o copie a OrdersTemplate. xls. Apoi utilizează ADO pentru a vă conecta la registrul de lucru și deschide un set de înregistrări într-un tabel care este o zonă definită în registrul de lucru. Numele zonei este Orders_Table. Utilizează metode ADO AddNew/Update pentru a adăuga înregistrări (sau rânduri) la zona definită din registrul de lucru. Atunci când se termină completările de rânduri, conexiunea ADO este închisă și registrul de lucru este afișat în Microsoft Excel. Urmați acești pași pentru a face acest lucru:

    1. În meniul Inserare din Excel, selectați nume, apoi selectați Definire.

    2. În lista de nume definite, selectați Orders_Table. Rețineți că numele definit a crescut pentru a include înregistrările nou adăugate. Se utilizează numele definit, coroborat cu funcția OFFSET Excel, pentru a calcula un total în datele adăugate la foaia de lucru.

    3. Închideți Microsoft Excel și reveniți la aplicația Visual Basic.

  5. Faceți clic pe eșantion 2. Acest eșantion creează o copie a EmpDataTemplate. xls. Utilizează ADO pentru a vă conecta la registrul de lucru și utilizează metoda de Executare a conexiunii ADO pentru a insera date (Inserare în SQL) în registrul de lucru. Datele sunt adăugate la intervale definite (sau tabele) din registrul de lucru. Atunci când datele sunt transferate, conexiunea este închisă și registrul de lucru care rezultă se afișează în Excel. După ce examinați registrul de lucru, închideți Microsoft Excel, apoi reveniți la aplicația Visual Basic.

  6. Faceți clic pe eșantion 3. Acest eșantion creează o copie a ProductsTemplate. xls. Utilizează extensii Microsoft ADO 2,1 pentru DDL și biblioteca de obiecte de securitate (ADOX) pentru a adăuga un tabel nou (sau o foaie de lucru nouă) la registrul de lucru. Se obține apoi un set de înregistrări ADO pentru noul tabel și datele sunt adăugate utilizând metodele AddNew/Update . Atunci când se termină completările de rânduri, conexiunea ADO este închisă și registrul de lucru este afișat în Excel. Registrul de lucru conține cod de macrocomandă Visual Basic for Applications (VBA) în Evenimentul deschis pentru registrul de lucru. Macrocomanda rulează la deschiderea registrului de lucru; Dacă există foaia de lucru "produse" nouă în registrul de lucru, codul de macrocomandă formatează foaia de lucru, apoi codul de macrocomandă este șters. Această tehnică prezintă o modalitate pentru ca Web Developer să mute codul de formatare departe de serverul Web și de client. O aplicație web poate reda în flux un registru de lucru formatat care conține date către client și permite un cod de macrocomandă care va efectua orice formatare "condițională" care este posibil să nu fie posibilă doar într-un șablon pentru a rula la client.Notă: pentru a examina codul de macrocomandă, vizualizați modulul acestregistrudelucru în VBAProject pentru ProductsTemplate. xls.

  7. Faceți clic pe eșantion 4. Acest eșantion produce aceleași rezultate ca eșantion 1, dar tehnica utilizată pentru a transfera datele este ușor diferită. În eșantion 1, înregistrările (sau rândurile) sunt adăugate la foaia de lucru pe rând. Eșantion 4 adaugă înregistrările în masă, atașând tabelul Excel la o bază de date Access și rulând o interogare de Adăugare (sau Inserare în.. Selectați de la) pentru a adăuga înregistrări dintr-un tabel din tabelul Access în tabelul Excel. După finalizarea transferului, tabelul Excel este detașat din baza de date Access și registrul de lucru pe care se afișează rezultatele în Excel. Închideți Excel și reveniți la aplicația Visual Basic.

  8. Ultimul eșantion ilustrează modul în care puteți citi datele dintr-un registru de lucru Excel. Selectați un tabel în lista verticală, apoi faceți clic pe eșantion 5. Fereastra imediată afișează conținutul tabelului pe care l-ați selectat. Dacă selectați o întreagă foaie de lucru ("Foaie1 $" sau "Foaie2 $") pentru tabel, fereastra imediată afișează conținutul zonei utilizate pentru acea foaie de lucru. Rețineți că zona utilizată nu începe neapărat în rândul 1, coloana 1 a foii de lucru. Zona utilizată pornește în celula din stânga sus din foaia de lucru care conține date. Dacă selectați o anumită adresă de zonă sau o zonă definită, fereastra imediată afișează conținutul doar din acea zonă din foaia de lucru.

Pentru a utiliza paginile Active Server (ASP):

  1. Creați un folder nou denumit ExcelADO în directorul de pornire al serverului Web. Rețineți că calea implicită pentru directorul de pornire este C:\InetPut\WWWRoot.

  2. Copiați următoarele fișiere în folderul pe care l-ați creat în pasul anterior:

    • EmpData.asp

    • Orders.asp

    • Data.mdb

    • EmpDataTemplate.xls

    • OrdersTemplate.xls

  3. Scripturile ASP din acest eșantion creează copii ale șabloanelor de registru de lucru cu metoda de Copiere a filesystemobject. Pentru ca metoda de Copiere să reușească, clientul care accesează scriptul trebuie să aibă acces de scriere la folderul care conține ASP.

  4. Navigați la orders. ASP (adică, http://YourServer/ExcelADO/Orders.ASP) și rețineți că browserul afișează un registru de lucru Excel similar cu cel din eșantionul 1 din aplicația Visual Basic.

  5. Navigați la EmpData. ASP (adică, http://YourServer/ExcelADO/EmpData.ASP) și rețineți că browserul afișează un registru de lucru Excel similar cu cel din eșantionul 2 din aplicația Visual Basic.

(c) Microsoft Corporation 2000, toate drepturile rezervate. Contribuțiile lui Lori B. Turner, Microsoft Corporation.

Referințe

Pentru informații suplimentare, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:

195951 HOWTO: interogarea și actualizarea datelor Excel utilizând ADO din ASP

194124 PRB: valorile Excel returnate ca NULL utilizând DAO OpenRecordset

193998 HOWTO: citirea și afișarea datelor binare în ASP

247412 INFORMAȚII: metode pentru transferul datelor în Excel din Visual Basic

257819 HOWTO: utilizați ADO cu date Excel din Visual Basic sau VBA

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×