Το ExcelADO δείχνει πώς μπορείτε να χρησιμοποιήσετε το ADO για την ανάγνωση και την εγγραφή δεδομένων σε βιβλία εργασίας του Excel


Σύνοψη


Το δείγμα ExcelADO. exe παρουσιάζει τον τρόπο με τον οποίο μπορείτε να χρησιμοποιήσετε τα αντικείμενα δεδομένων ActiveX (ADO) με την υπηρεσία παροχής Microsoft Jet OLE DB 4,0 για την ανάγνωση και την εγγραφή δεδομένων σε βιβλία εργασίας του Microsoft Excel.

Περισσότερες πληροφορίες


Γιατί να χρησιμοποιήσετε το ADO;

Η χρήση του ADO για τη μεταφορά δεδομένων ή την ανάκτηση δεδομένων από ένα βιβλίο εργασίας του Excel παρέχει σε εσάς, τον προγραμματιστή, πολλά πλεονεκτήματα έναντι της αυτοματοποίησης στο Excel:
  • Απόδοση. Το Microsoft Excel είναι ένας διακομιστής ActiveX εκτός διεργασίας. Τα ADO εκτελούνται εντός διεργασίας και αποθηκεύουν την επιβάρυνση των δαπανηρών κλήσεων εκτός διεργασίας.
  • Δυνατότητα κλιμάκωσης. Για τις εφαρμογές Web, δεν είναι πάντα επιθυμητό να αυτοματοποιήσετε το Microsoft Excel. Το ADO σας παρουσιάζει μια πιο κλιμακούμενη λύση για το χειρισμό δεδομένων σε ένα βιβλίο εργασίας.
Τα ADO μπορούν να χρησιμοποιηθούν αυστηρά για τη μεταφορά ανεπεξέργαστων δεδομένων σε ένα βιβλίο εργασίας. Δεν μπορείτε να χρησιμοποιήσετε το ADO για να εφαρμόσετε μορφές ή τύπους σε κελιά. Ωστόσο, μπορείτε να μεταφέρετε δεδομένα σε ένα βιβλίο εργασίας που έχει προ-μορφοποιηθεί και η μορφή διατηρείται. Εάν χρειάζεστε τη μορφοποίηση "υπό όρους" μετά την εισαγωγή των δεδομένων, μπορείτε να ολοκληρώσετε αυτήν τη μορφοποίηση με αυτοματοποίηση ή με μια μακροεντολή στο βιβλίο εργασίας.

Λεπτομέρειες υπηρεσίας παροχής Jet OLE DB για βιβλία εργασίας του Excel

Ο μηχανισμός διαχείρισης βάσεων δεδομένων Microsoft Jet μπορεί να χρησιμοποιηθεί για την πρόσβαση σε δεδομένα σε άλλες μορφές αρχείων βάσης δεδομένων, όπως τα βιβλία εργασίας του Excel, μέσω προγραμμάτων οδήγησης με δυνατότητα εγκατάστασης σε ευρετήριο διαδοχικής πρόσβασης (ISAM). Για να ανοίξετε εξωτερικές μορφές που υποστηρίζονται από την υπηρεσία παροχής OLE DB του Microsoft Jet 4,0, καθορίζετε τον τύπο της βάσης δεδομένων στις σύνθετες ιδιότητες για τη σύνδεση. Η υπηρεσία παροχής Jet OLE DB υποστηρίζει τους ακόλουθους τύπους βάσεων δεδομένων για τα βιβλία εργασίας του Microsoft Excel:
  • Excel 3,0
  • Excel 4,0
  • Excel 5,0
  • Excel 8,0
Σημείωση: Χρησιμοποιήστε τον τύπο βάσης δεδομένων προέλευσης του Excel 5,0 για βιβλία εργασίας του microsoft Excel 5,0 και 7,0 (95) και χρησιμοποιήστε τον τύπο βάσης δεδομένων προέλευσης του Excel 8,0 για βιβλία εργασίας του microsoft Excel 8,0 (97) και 9,0 (2000). Το δείγμα ExcelADO. exe χρησιμοποιεί βιβλία εργασίας του Excel με τη μορφή Excel 97 και Excel 2000. Τα παρακάτω δείγματα δείχνουν μια σύνδεση του ADO με ένα βιβλίο εργασίας του Excel 97 (ή του 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
     ή
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
Συμβάσεις ονομασίας πίνακαΥπάρχουν διάφοροι τρόποι με τους οποίους μπορείτε να αναφέρετε έναν πίνακα (ή μια περιοχή) σε ένα βιβλίο εργασίας του Excel:
  • Χρησιμοποιήστε το όνομα του φύλλου ακολουθούμενο από ένα σύμβολο δολαρίου (για παράδειγμα, [Φύλλο1 $] ή [το φύλλο εργασίας μου $]). Ένας πίνακας βιβλίου εργασίας που αναφέρεται με αυτόν τον τρόπο αποτελείται από ολόκληρη τη χρησιμοποιούμενη περιοχή του φύλλου εργασίας.
    oRS.Open "Select * from [Sheet1$]", oConn, adOpenStatic
  • Χρησιμοποιήστε μια περιοχή με ένα καθορισμένο όνομα (για παράδειγμα, [Πίνακας1]).
    oRS.Open "Select * from Table1", oConn, adOpenStatic
  • Χρησιμοποιήστε μια περιοχή με μια συγκεκριμένη διεύθυνση (για παράδειγμα, [Φύλλο1 $ a1: B10]).
    oRS.Open "Select * from [Sheet1$A1:B10]", oConn, adOpenStatic
Κεφαλίδες πίνακαΜε τα βιβλία εργασίας του Excel, η πρώτη γραμμή μιας περιοχής θεωρείται ότι είναι η γραμμή κεφαλίδων (ή τα ονόματα πεδίων) από προεπιλογή. Εάν η πρώτη περιοχή δεν περιέχει κεφαλίδες, μπορείτε να καθορίσετε HDR = όχι στις σύνθετες ιδιότητες στη συμβολοσειρά σύνδεσής σας. Εάν η πρώτη γραμμή δεν περιέχει κεφαλίδες, η υπηρεσία παροχής OLE DB ονομάζει αυτόματα τα πεδία για εσάς (όπου το F1 θα αντιπροσώπευε το πρώτο πεδίο, το F2 θα αντιπροσώπευε το δεύτερο πεδίο και ούτω καθεξής).Τύποι δεδομένωνΣε αντίθεση με μια παραδοσιακή βάση δεδομένων, δεν υπάρχει άμεσος τρόπος για να καθορίσετε τους τύπους δεδομένων για τις στήλες σε πίνακες του Excel. Αντί για αυτό, η υπηρεσία παροχής OLE DB σαρώνει έναν περιορισμένο αριθμό γραμμών σε μια στήλη για να "μαντέψετε" τον τύπο δεδομένων για το πεδίο. Ο αριθμός των γραμμών που θα σαρώσουν προεπιλογές σε οκτώ (8) γραμμές. Μπορείτε να αλλάξετε τον αριθμό των γραμμών που θα σαρώσετε, καθορίζοντας μια τιμή μεταξύ ενός (1) και δεκαέξι (16) για τη ρύθμιση MAXSCANROWS στις σύνθετες ιδιότητες της συμβολοσειράς σύνδεσής σας.

Αρχεία που περιλαμβάνονται στο δείγμα

Το αρχείο ExcelADO. exe περιέχει ένα τυπικό έργο της Visual Basic EXE, των ενεργών σελίδων διακομιστή (ASP), των βιβλίων εργασίας του Excel 97 και του Excel 2000 που λειτουργούν ως πρότυπα και μιας βάσης δεδομένων της Microsoft Access 2000. Τα αρχεία που περιλαμβάνονται είναι τα εξής:τυπικά αρχεία έργου της Visual Basic exe
  • ExcelADO.vbp
  • Form1.frm
  • Form1.frx
Ενεργές σελίδες διακομιστή
  • EmpData.asp
  • Orders.asp
Βιβλία εργασίας του Microsoft Excel
  • OrdersTemplate.xls
  • EmpDataTemplate.xls
  • ProductsTemplate.xls
  • SourceData.xls
Βάση δεδομένων της Microsoft Access
  • Data.mdb

Πώς μπορείτε να χρησιμοποιήσετε το δείγμα

Εξαγάγετε τα περιεχόμενα του αρχείου. exe σε ένα φάκελο.Για να χρησιμοποιήσετε το έργο της Visual Basic:
  1. Στη Visual Basic, ανοίξτε το αρχείο ExcelADO. VBP.
  2. Στο μενού έργο , επιλέξτε αναφορέςκαι, στη συνέχεια, ορίστε αναφορές στο Microsoft ADO ext. για DDL και ασφάλεια και βιβλιοθήκη αντικειμένων δεδομένων Microsoft ActiveX. Αυτό το δείγμα κώδικα λειτουργεί τόσο με το ADO 2,5 όσο και με το ADO 2,6, επομένως επιλέξτε την έκδοση που είναι κατάλληλη για τον υπολογιστή σας.
  3. Πατήστε το πλήκτρο F5 για να εκτελέσετε το πρόγραμμα. Εμφανίζεται μια φόρμα για την επίδειξη.
  4. Κάντε κλικ στην επιλογή δείγμα 1. Αυτό το δείγμα δημιουργεί ένα αντίγραφο του OrdersTemplate. xls. Στη συνέχεια, χρησιμοποιεί τα ADO για να συνδεθεί με το βιβλίο εργασίας και ανοίγει ένα σύνολο εγγραφών σε έναν πίνακα που είναι μια καθορισμένη περιοχή στο βιβλίο εργασίας. Το όνομα της περιοχής είναι Orders_Table. Χρησιμοποιεί τις μεθόδους του ADO AddNew/Update για να προσθέσει εγγραφές (ή γραμμές) στην καθορισμένη περιοχή του βιβλίου εργασίας. Όταν ολοκληρωθούν οι προσθήκες γραμμής, η σύνδεση του ADO είναι κλειστή και το βιβλίο εργασίας εμφανίζεται στο Microsoft Excel. Ακολουθήστε τα παρακάτω βήματα για να το κάνετε αυτό:
    1. Στο μενού Εισαγωγή στο Excel, επιλέξτε ονόματακαι, στη συνέχεια, επιλέξτε Ορισμός.
    2. Στη λίστα με τα καθορισμένα ονόματα, επιλέξτε Orders_Table. Σημειώστε ότι το καθορισμένο όνομα έχει αυξηθεί ώστε να συμπεριλάβει τις εγγραφές που προστέθηκαν πρόσφατα. Το καθορισμένο όνομα χρησιμοποιείται, σε συνδυασμό με τη συνάρτηση OFFSET του Excel, για τον υπολογισμό ενός αθροίσματος στα δεδομένα που προστίθενται στο φύλλο εργασίας.
    3. Κλείστε το Microsoft Excel και επιστρέψτε στην εφαρμογή της Visual Basic.
  5. Κάντε κλικ στην επιλογή δείγμα 2. Αυτό το δείγμα δημιουργεί ένα αντίγραφο του EmpDataTemplate. xls. Χρησιμοποιεί τα ADO για να συνδεθεί με το βιβλίο εργασίας και χρησιμοποιεί τη μέθοδο Execute της σύνδεσης ADO για την εισαγωγή δεδομένων (εισαγωγή στο in SQL) στο βιβλίο εργασίας. Τα δεδομένα προστίθενται σε καθορισμένες περιοχές (ή πίνακες) στο βιβλίο εργασίας. Όταν μεταφερθούν τα δεδομένα, η σύνδεση είναι κλειστή και το βιβλίο εργασίας που έχει αποτελέσματα εμφανίζεται στο Excel. Αφού εξετάσετε το βιβλίο εργασίας, κλείστε το Microsoft Excel και, στη συνέχεια, επιστρέψτε στην εφαρμογή της Visual Basic.
  6. Κάντε κλικ στην επιλογή δείγμα 3. Αυτό το δείγμα δημιουργεί ένα αντίγραφο του ProductsTemplate. xls. Χρησιμοποιεί το Microsoft ADO Extensions 2,1 για DDL και βιβλιοθήκη αντικειμένων ασφαλείας (ADOX) για να προσθέσει έναν νέο πίνακα (ή ένα νέο φύλλο εργασίας) στο βιβλίο εργασίας. Στη συνέχεια, μια ομάδα ΕΓΓΡΑΦΏΝ ADO λαμβάνεται για τον νέο πίνακα και τα δεδομένα προστίθενται χρησιμοποιώντας τις μεθόδους AddNew/Update . Όταν ολοκληρωθούν οι προσθήκες γραμμής, η σύνδεση του ADO είναι κλειστή και το βιβλίο εργασίας εμφανίζεται στο Excel. Το βιβλίο εργασίας περιέχει κώδικα μακροεντολών της Visual Basic for Applications (VBA) στο ανοικτό συμβάν για το βιβλίο εργασίας. Η μακροεντολή εκτελείται όταν ανοίγει το βιβλίο εργασίας. Εάν το νέο φύλλο εργασίας "προϊόντα" υπάρχει στο βιβλίο εργασίας, ο κώδικας μακροεντολών μορφοποιεί το φύλλο εργασίας και, στη συνέχεια, ο κώδικας μακροεντολής διαγράφεται. Αυτή η τεχνική παρουσιάζει έναν τρόπο με τον οποίο ο προγραμματιστής Web θα μετακινήσει τη μορφοποίηση κώδικα μακριά από το διακομιστή Web και στο πρόγραμμα-πελάτη. Μια εφαρμογή Web μπορεί να πραγματοποιήσει ροή ενός μορφοποιημένου βιβλίου εργασίας που περιέχει δεδομένα στο πρόγραμμα-πελάτη και να επιτρέψει τον κώδικα μακροεντολών, ο οποίος θα μπορούσε να εκτελέσει οποιαδήποτε μορφοποίηση "υπό όρους", η οποία μπορεί να μην είναι δυνατή σε ένα πρότυπο μόνο για εκτέλεση στο πρόγραμμα-πελάτη.Σημείωση: για να εξετάσετε τον κώδικα μακροεντολής, προβάλετε τη λειτουργική μονάδα αυτό στο VBAProject για ProductsTemplate. xls.
  7. Κάντε κλικ στην επιλογή δείγμα 4. Αυτό το δείγμα παράγει τα ίδια αποτελέσματα με το δείγμα 1, αλλά η τεχνική που χρησιμοποιείται για τη μεταφορά των δεδομένων είναι ελαφρώς διαφορετική. Στο δείγμα 1, οι εγγραφές (ή οι γραμμές) προστίθενται στο φύλλο εργασίας ένα κάθε φορά. Το δείγμα 4 προσθέτει τις εγγραφές μαζικά, επισυνάπτοντας τον πίνακα του Excel σε μια βάση δεδομένων της Access και εκτελώντας ένα ερώτημα προσάρτησης (ή εισαγάγετε σε.. Επιλέξτε από) για να προσαρτήσετε εγγραφές από έναν πίνακα στον πίνακα της Access στον πίνακα του Excel. Μόλις ολοκληρωθεί η μεταφορά, ο πίνακας του Excel αποσυνδέεται από τη βάση δεδομένων της Access και το βιβλίο εργασίας που έχει αποτελέσματα εμφανίζεται στο Excel. Κλείστε το Excel και επιστρέψτε στην εφαρμογή της Visual Basic.
  8. Το τελευταίο δείγμα παρουσιάζει τον τρόπο με τον οποίο μπορείτε να διαβάζετε δεδομένα από ένα βιβλίο εργασίας του Excel. Επιλέξτε έναν πίνακα στην αναπτυσσόμενη λίστα και, στη συνέχεια, κάντε κλικ στην επιλογή δείγμα 5. Το παράθυρο "άμεση" εμφανίζει τα περιεχόμενα του πίνακα που επιλέξατε. Εάν επιλέξετε ένα ολόκληρο φύλλο εργασίας ("Φύλλο1 $" ή "Φύλλο2 $") για τον πίνακα, το παράθυρο "άμεση" εμφανίζει τα περιεχόμενα της χρησιμοποιούμενης περιοχής για αυτό το φύλλο εργασίας. Σημειώστε ότι η περιοχή που χρησιμοποιείται δεν ξεκινά αναγκαστικά από τη γραμμή 1, στήλη 1 του φύλλου εργασίας. Η περιοχή που χρησιμοποιείται ξεκινά από το επάνω αριστερό κελί του φύλλου εργασίας που περιέχει δεδομένα. Εάν επιλέξετε μια συγκεκριμένη διεύθυνση περιοχής ή μια καθορισμένη περιοχή, το παράθυρο "άμεση" εμφανίζει τα περιεχόμενα μόνο αυτής της περιοχής στο φύλλο εργασίας.
Για να χρησιμοποιήσετε τις ενεργές σελίδες διακομιστή (ASP):
  1. Δημιουργήστε έναν νέο φάκελο με το όνομα ExcelADO στον κεντρικό κατάλογο του διακομιστή Web. Σημειώστε ότι η προεπιλεγμένη διαδρομή για τον κεντρικό κατάλογο είναι C:\InetPut\WWWRoot.
  2. Αντιγράψτε τα ακόλουθα αρχεία στο φάκελο που δημιουργήσατε στο προηγούμενο βήμα:
    • EmpData.asp
    • Orders.asp
    • Data.mdb
    • EmpDataTemplate.xls
    • OrdersTemplate.xls
  3. Οι δέσμες ενεργειών ASP σε αυτό το δείγμα δημιουργούν αντίγραφα των προτύπων βιβλίου εργασίας με τη μέθοδο copy του FileSystemObject. Για να επιτύχει η μέθοδος αντιγραφής , ο υπολογιστής-πελάτης που αποκτά πρόσβαση στη δέσμη ενεργειών πρέπει να έχει πρόσβαση εγγραφής στο φάκελο που περιέχει τις ASP.
  4. Μεταβείτε στην εντολή Orders. ASP (δηλαδή, http://YourServer/ExcelADO/Orders.ASP) και Σημειώστε ότι το πρόγραμμα περιήγησης εμφανίζει ένα βιβλίο εργασίας του Excel παρόμοιο με αυτό στο δείγμα 1 της εφαρμογής της Visual Basic.
  5. Μεταβείτε στο EmpData. ASP (δηλαδή, http://YourServer/ExcelADO/EmpData.ASP) και Σημειώστε ότι το πρόγραμμα περιήγησης εμφανίζει ένα βιβλίο εργασίας του Excel παρόμοιο με αυτό στο δείγμα 2 της εφαρμογής της Visual Basic.
(c) Microsoft Corporation 2000, με την επιφύλαξη παντός δικαιώματος. Συνεισφορές της Lori B. Turner, Microsoft Corporation.

Αναφορές


Για πρόσθετες πληροφορίες, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα στη Γνωσιακή βάση της Microsoft:
195951 ΔΙΑΔΙΚΑΣΙΕΣ: ερώτημα και ενημέρωση δεδομένων του Excel με χρήση του ADO από τις ASP
194124 PRB: οι τιμές του Excel επιστρέφονται ως NULL χρησιμοποιώντας τα DAO OpenRecordset
193998 ΔΙΑΔΙΚΑΣΙΕΣ: ανάγνωση και εμφάνιση δυαδικών δεδομένων σε σελίδες ASP
247412 ΠΛΗΡΟΦΟΡΊΕς: μέθοδοι για τη μεταφορά δεδομένων στο Excel από τη Visual Basic
257819 ΔΙΑΔΙΚΑΣΙΕΣ: χρήση του ADO με δεδομένα του Excel από τη Visual Basic ή τη VBA