Τρόπος χρήσης της MFC για να αυτοματοποιήσετε το Excel 2000 και το Excel 2002 και αποκτήστε έναν πίνακα από μια περιοχή στο Excel 2000 και το Excel 2002

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 186122 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο επιδεικνύει τον τρόπο αυτοματοποίησης του Microsoft Excel και επιστρέφουν τις τιμές από μια περιοχή multi-cell σε έναν πίνακα.

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

Για να επαναφέρετε τις τιμές από μια περιοχή multi-cell χωρίς ερώτημα τα κελιά ένα-προς-ένα, πρέπει να χρησιμοποιήσετε τη συνάρτηση μέλους GetValue του αντικειμένου περιοχής για να επαναφέρετε τις τιμές σε μια VARIANT. Στη συνέχεια να κατασκευάσετε μια ΑΣΦΑΛΉΣ βάσει του VARIANT επέστρεψε GetValue. Αφού η ΑΣΦΑΛΉΣ, μπορείτε να έχετε πρόσβαση στα στοιχεία χρησιμοποιώντας GetElement. Τα ακόλουθα βήματα εξηγούν αυτή τη διαδικασία και δείχνουν πώς μπορείτε να αποκτήσετε πρόσβαση και συμβολοσειράς και αριθμητικών στοιχείων.

Σημειώσεις για την αυτοματοποίηση του Microsoft Excel 2000 και 2002

Το δείγμα κώδικα σε αυτό το άρθρο χρησιμοποιεί wrappers κλάσης που δημιουργείται από τη βιβλιοθήκη αντικειμένων του Excel 97 (Excel 8.olb). Με μικρή τροποποίηση, αυτός ο κωδικός μπορεί να εφαρμοστεί σε έναν υπολογιστή-πελάτη αυτοματισμού που χρησιμοποιεί wrappers κλάσης για το Excel 2000 (Excel9.olb) ή στο Excel 2002 (Excel.olb).Για πρόσθετες πληροφορίες σχετικά με τη χρήση του δείγματος κώδικα που περιγράφεται σε αυτό το άρθρο με το Microsoft Excel 2000 ή 2002 τύπο βιβλιοθήκης, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
224925ΠΛΗΡΟΦΟΡΙΕΣ: Βιβλιοθήκες τύπων για το Office ενδέχεται να αλλάξει με νέα έκδοση

Βήματα για τη δημιουργία έργου

  1. Στο Microsoft Excel, δημιουργήστε ένα νέο βιβλίο εργασίας. Συμπλήρωση κελιών A1:C8 με ένα μείγμα συμβολοσειράς και αριθμητικών δεδομένων. Αποθηκεύστε το βιβλίο εργασίας ως "c:\test.xls" και να κλείσετε το Microsoft Excel.
  2. Ακολουθήστε τα βήματα 1 έως 12 στο ακόλουθο άρθρο της Microsoft Knowledge Base για να δημιουργήσετε ένα δείγμα έργο που χρησιμοποιεί το IDispatch διασυνδέσεις και μέλος συναρτήσεις που ορίζονται στη βιβλιοθήκη τύπων Excel8.olb:
    178749Τρόπος δημιουργίας αυτοματισμού του έργου χρησιμοποιώντας το MFC και μια βιβλιοθήκη τύπων
  3. Στο επάνω μέρος του αρχείου AutoProjectDlg.cpp, προσθέστε την ακόλουθη γραμμή:
          #include "excel8.h"
    					
  4. Προσθέστε τον ακόλουθο κώδικα CAutoProjectDlg::OnRun() στο αρχείο AutoProjectDlg.cpp:

    Δείγμα κώδικα

          // OLE Variant for Optional.
          COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
    
          _Application objApp;
          _Workbook objBook;
          Workbooks objBooks;
          Worksheets objSheets;
          _Worksheet objSheet;
          Range objRange;
          VARIANT ret;
    
          // Instantiate Excel and open an existing workbook.
          objApp.CreateDispatch("Excel.Application");
          objBooks = objApp.GetWorkbooks();
          objBook = objBooks.Open("C:\\Test.xls",
                    VOptional, VOptional, VOptional, VOptional,
                    VOptional, VOptional, VOptional, VOptional,
                    VOptional, VOptional, VOptional, VOptional);
          objSheets = objBook.GetWorksheets();
          objSheet = objSheets.GetItem(COleVariant((short)1));
    
          //Get the range object for which you wish to retrieve the
          //data and then retrieve the data (as a variant array, ret).
          objRange = objSheet.GetRange(COleVariant("A1"), COleVariant("C8"));
          ret = objRange.GetValue();
    
          //Create the SAFEARRAY from the VARIANT ret.
          COleSafeArray sa(ret);
    
          //Determine the array's dimensions.
          long lNumRows;
          long lNumCols;
          sa.GetUBound(1, &lNumRows);
          sa.GetUBound(2, &lNumCols);
    
          //Display the elements in the SAFEARRAY.
          long index[2];
          VARIANT val;
          int r, c;
          TRACE("Contents of SafeArray\n");
          TRACE("=====================\n\t");
          for(c=1;c<=lNumCols;c++)
          {
             TRACE("\t\tCol %d", c);
          }
          TRACE("\n");
          for(r=1;r<=lNumRows;r++)
          {
             TRACE("Row %d", r);
             for(c=1;c<=lNumCols;c++)
             {
                index[0]=r;
                index[1]=c;
                sa.GetElement(index, &val);
                switch(val.vt)
                {
                case VT_R8:
                   {
                      TRACE("\t\t%1.2f", val.dblVal);
                      break;
                   }
                case VT_BSTR:
                   {
                      TRACE("\t\t%s",(CString)val.bstrVal);
                      break;
                   }
    
                case VT_EMPTY:
                   {
                      TRACE("\t\t<empty>");
                      break;
                   }
                }
             }
             TRACE("\n");
          }
    
          //Close the workbook without saving changes
          //and quit Microsoft Excel.
          objBook.Close(COleVariant((short)FALSE), VOptional, VOptional);
          objApp.Quit();
    					
  5. Μεταγλωττίστε το έργο και εκτελέστε το.
  6. Κάντε κλικ στην επιλογή "Εκτέλεση". Οι τιμές στα κελιά A1:C8 εμφανίζονται στο παράθυρο "Έξοδος".

Αναφορές

Για πρόσθετες πληροφορίες σχετικά με την αυτοματοποίηση του Microsoft Excel, χρησιμοποιώντας το MFC, κάντε κλικ στο κουμπί αριθμούς των άρθρων παρακάτω για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
186120Τρόπος χρήσης της MFC αυτοματοποίησης του Excel και γέμισμα μιας περιοχής με έναν πίνακα
184663Τρόπος ενσωμάτωση και αυτοματοποίηση ενός φύλλου εργασίας του Microsoft Excel με MFC
179706Τρόπος χρήσης της MFC για τη δημιουργία/μορφή ένα νέο βιβλίο εργασίας και αυτοματοποίησης του Excel
178781ΔΙΑΔΙΚΑΣΙΕΣ: Αυτοματοποίηση Excel με χρήση συναρτήσεων φύλλου εργασίας και MFC
178783ΔΙΑΔΙΚΑΣΙΕΣ: Χρήση της MFC για να δημιουργήσετε ένα γράφημα του Microsoft Excel
167668Με τον τρόπο για να μεταβιβάσετε ένα SafeArray των συμβολοσειρών σε μια VARIANT *

Ιδιότητες

Αναγν. άρθρου: 186122 - Τελευταία αναθεώρηση: Κυριακή, 18 Σεπτεμβρίου 2011 - Αναθεώρηση: 5.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
Λέξεις-κλειδιά: 
kbprogramming kbfunctions kbautomation kbhowto kbinterop kbmt KB186122 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:186122

Αποστολή σχολίων

 

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