Τρόπος αυτοματοποίησης χρησιμοποιώντας το Visual C++ για να αποθηκεύσετε το φύλλο εργασίας του Excel ως αρχείο HTML

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

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

Περίληψη

Εάν έχετε τον Οδηγό Βοηθού Internet (Html.xla) εγκατεστημένο πρόσθετο, το Microsoft Excel 97 ή Excel 2000 παρέχει μια επιλογή μενού από το αρχείο μενού για να αποθηκεύσετε ένα φύλλο εργασίας ως αρχείο HTML.

Αυτό το άρθρο παρέχει δείγμα κώδικα για να κάνετε το ίδιο πράγμα μέσω της αυτοματοποίησης, χρησιμοποιώντας τη μακροεντολή htmlConvert που παρέχεται από τον οδηγό. Ο κώδικας απαιτεί Excel 97 Service Release 2 ή νεότερη έκδοση του Excel.

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

Για να χρησιμοποιήσετε τον Οδηγό του Βοηθού Internet μέσω του περιβάλλοντος εργασίας του Excel, το βιβλίο εργασίας Html.xla πρέπει να προστεθεί στη λίστα πρόσθετα (από το μενού "Εργαλεία") και πρέπει να ελεγχθεί για να δείχνουν ότι έχει εγκατασταθεί. Από τη στιγμή που ένα αρχείο .xla είναι μια φόρμα ενός βιβλίου εργασίας, επίσης πρέπει να ανοίξει, αυτό γίνεται για εσάς αυτόματα από το πρόσθετο Διαχείριση κατά την εργασία στο Excel με αλληλεπίδραση, αλλά ΟΧΙ όταν εργάζεστε στο τμήμα αυτοματισμού. Ανοίξατε μια φορά, από τοFILEμενού, κάντε κλικ στο κουμπίΑποθήκευση ως HTMLκαι να εργαστείτε με τον οδηγό για να αποθηκεύσετε το αρχείο σε μορφή HTML μορφή.

Για να επιτύχετε το ίδιο πράγμα σε Visual C++, χρησιμοποιώντας κατηγορίες υποδομής Microsoft (MFC), μπορείτε να χρησιμοποιήσετε το μέλος της εκτέλεσης του αντικειμένου _Application Excel να εκτελέσετε τη μακροεντολή απευθείας αντί λειτουργεί μέσω του οδηγού.

Με προσαρμογής, ο κώδικας της Visual C++ σε αυτό το άρθρο μπορούν να χρησιμοποιηθούν στην εφαρμογή σας. Ωστόσο, ο σκοπός αυτού του άρθρου είναι να σας βοηθήσει να μάθετε τόσο από ενέργειες μέσω του κώδικα και με την εκτέλεση του προγράμματος.

Το παράδειγμα προϋποθέτει ότι υπάρχει ένα βιβλίο εργασίας, με όνομα "Book1.xls" στον ριζικό κατάλογο της μονάδας δίσκου C:\. Έχει ένα εύρος τιμών από $ A $ 7 $ D $ 10.

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

  1. Ακολουθήστε τα βήματα 1 έως 13 στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft για να δημιουργήσετε ένα υπόδειγμα έργου:
    178749Πώς μπορείτε να δημιουργήσετε ένα έργο της αυτοματοποίησης χρησιμοποιώντας MFC και μια βιβλιοθήκη τύπων
    Όταν εργάζεστε με το Microsoft Excel 2002 ή νεότερη έκδοση του Excel, η βιβλιοθήκη τύπων έχει ενσωματωθεί το εκτελέσιμο αρχείο Excel. Από προεπιλογή, Excel.exe βρίσκεται σε μία από τις ακόλουθες θέσεις:
    • Microsoft Office Excel 2007:C:\Program Files\Microsoft Office\OFFICE12
    • Microsoft Office Excel 2003:C:\Program Files\Microsoft Office\Office11
    • Excel 2002:C:\Program Files\Microsoft Office\Office10
  2. Προσθέστε τον ακόλουθο κώδικα CAutoProjectDlg::OnRun() το πρόγραμμα χειρισμού συμβάντων στο αρχείο AutoProjectDlg.cpp:
    //Sample code
          // char buf[1024];  // General purpose buffer.
          // Convenient variables. Uncomment before shipping.
          COleVariant
          covTrue((short)TRUE),
          covFalse((short)FALSE),
          covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
    
          _Application oApp;
          _Workbook oBook;
           Workbooks oBooks;
          _Workbook oHTML;
           Worksheets oSheets;
          _Worksheet oSheet;
           Range oRange;
           AddIns oAddIns;
           AddIn oAddIn;
           VARIANT ObjToConvert[1];
           ObjToConvert[0].vt = VT_DISPATCH;
           ObjToConvert[0].pdispVal = oRange;  //We'll set this value later.
    
          //Launch Excel and make it visible.
          oApp.CreateDispatch("Excel.Application");
          oApp.SetVisible(TRUE);
    
          //Get the Workbooks collection.
          oBooks = oApp.GetWorkbooks();
    
          /* Excel 2000 takes 13 arguments 
    	  //Open the test workbook.
          oBook = oBooks.Open("C:\\Book1.xls", // This is a test workbook.
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional,
          covOptional); // Open for Excel 2000 has 13 parameters
    	  /*
    /*
          // Excel 2002 takes 16 arguments 
    	  oBook = oBooks.Open("C:\\Book1.xls", // Filename, 
    	          covOptional,  // UpdateLinks, 
    		  covOptional,  // ReadOnly, 
    		  covOptional,  // Format, 
    		  covOptional,  // Password, 
    		  covOptional,  // WriteResPassword, 
    		  covOptional,  // IgnoreReadOnlyRecommended, 
    		  covOptional,  // Origin, 
    		  covOptional,  // Delimiter, 
    		  covOptional,  // Editable, 
    		  covOptional,  // Notify, 
    		  covOptional,  // Converter, 
    		  covOptional,  // AddToMru, 
    		  covOptional,  // Local, 
    		  covOptional,  // CorruptLoad, 
    		  covOptional   // OpenConflictDocument
    		  );
    */
    
          // Excel 2003 takes 15 arguments 
    	  oBook = oBooks.Open("C:\\Book1.xls", // Filename, 
    	          covOptional,  // UpdateLinks, 
    		  covOptional,  // ReadOnly, 
    		  covOptional,  // Format, 
    		  covOptional,  // Password, 
    		  covOptional,  // WriteResPassword, 
    		  covOptional,  // IgnoreReadOnlyRecommended, 
    		  covOptional,  // Origin, 
    		  covOptional,  // Delimiter, 
    		  covOptional,  // Editable, 
    		  covOptional,  // Notify, 
    		  covOptional,  // Converter, 
    		  covOptional,  // AddToMru, 
    		  covOptional,  // Local, 
    		  covOptional  // CorruptLoad, 
    		  );
    
    /*
    	// Excel 2007 takes 15 arguments
    	oBook = oBooks.Open("C:\\Book1.xlsx, // Filename, 
    	          covOptional,  // UpdateLinks, 
    		  covOptional,  // ReadOnly, 
    		  covOptional,  // Format, 
    		  covOptional,  // Password, 
    		  covOptional,  // WriteResPassword, 
    		  covOptional,  // IgnoreReadOnlyRecommended, 
    		  covOptional,  // Origin, 
    		  covOptional,  // Delimiter, 
    		  covOptional,  // Editable, 
    		  covOptional,  // Notify, 
    		  covOptional,  // Converter, 
    		  covOptional,  // AddToMru, 
    		  covOptional,  // Local, 
    		  covOptional  // CorruptLoad, 
    		  );
    */
    
          //Get the Worksheets collection.
          oSheets = oBook.GetWorksheets();
          //Get the worksheet 1.
          oSheet = oSheets.GetItem(COleVariant((short)1)); // Worksheet 1
    
          //Get the AddIns collection.
          oAddIns = oApp.GetAddIns();
    
          //Search for the HTML.XLA AddIn.
         long lCount = oAddIns.GetCount();
         for (long l = 1; l<=lCount; l++)
         {
          oAddIn = oAddIns.GetItem(COleVariant((long)l));
          if(oAddIn.GetName() == "HTML.XLA")
    /*
    	  //When using Excel 2007 refer to the XLAM
    	  if(oAddIn.GetName() == "HTML.XLAM")	
    */
    	  {		 
           break; // AddIn is checked in the list
          }
         }
    
          //Make sure the HTML.XLA AddIn is installed.
          if(!oAddIn.GetInstalled())
           {
            AfxMessageBox("Installing AddIn");
            oAddIn.SetInstalled(TRUE);
    	  }
    
          // The addin can be in the list, and can be installed,
          //  but it is a workbook (.xla) which must be open also.
          oHTML = oBooks.Open(oAddIn.GetFullName(),  // Returns a _Workbook
          // object reference.
          covOptional, covOptional, covOptional, covOptional, covOptional,
          covOptional, covOptional, covOptional, covOptional, covOptional,
          covOptional, covOptional /*13 arguments for Excel 2000*/,
       	  covOptional, covOptional
    	/* 15 Arguments for 2003 and 2007*/
          // ,covOptional 
           /* 16 arguments for 2002*/ 
                                             
          );
    
          //Get the Range we want to convert to HTML.
          oRange = oApp.GetRange(COleVariant("A7"), COleVariant("D10"));
    
          // Using active worksheet, pass an array of LPDISPATCH
          // variables, which can have one or many elements.
          // We pass only one range in this example.
          ObjToConvert[0].pdispVal = oRange;
          AfxMessageBox("Check the Macros list\n"
    	            "There should be nothing there.\n"
      		     "You're about to run a hidden macro\n"
    	     "It is in the .xla", 327744);
    
          //Call the htmlconvert macro.  We use the Application.Run method to
          //do this.
          VARIANT Result;
          Result = oApp.Run(COleVariant("htmlconvert"),  // The "macro" name
             COleVariant(ObjToConvert),  // An array of Variants
          // which are the table ranges and
          //charts you wish to convert.
          covFalse,      //UseExistingFile
          covFalse,      //UseFrontPageForExistingFile
          covFalse,      //AddToFrontPageWeb
          COleVariant("1252"), //CodePage (1252 U.S./Western Europe)
          COleVariant("c:\\Book1111.htm"), //HTMLFilePath
          COleVariant("Test Page"),   //TitleFullPage
          covTrue,       //LineBeforeTableFullPage
          COleVariant("Luke Skywalker"), //NameFullPage
          covOptional, covOptional, covOptional, covOptional,
          covOptional, covOptional, covOptional, covOptional,
          covOptional, covOptional, covOptional, covOptional,
          covOptional, covOptional, covOptional, covOptional,
          covOptional, covOptional, covOptional, covOptional,
          covOptional  // Run() takes 31 parameters!!
          );
    
          //Quit Excel and release the IDispatch pointer we used to automate
          //it.
    	  oHTML.SetSaved(TRUE);
    	  oBook.SetSaved(TRUE);
    	  oHTML.ReleaseDispatch();
    	  oBook.ReleaseDispatch();
          oApp.Quit();
          oApp.ReleaseDispatch();
    
          AfxMessageBox("You can see the .html file by opening it in Excel.\n"
    	            " Its name is Book1111.html.",327744);
          return;
          // End sample code
    

Αναφορές

Για πρόσθετες πληροφορίες σχετικά με τη χρήση MFC για την αυτοματοποίηση, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
178749Τρόπος δημιουργίας αυτοματισμού του έργου χρησιμοποιώντας το MFC και μια βιβλιοθήκη τύπων


(c) Microsoft Corporation 1998, όλα τα δικαιώματα κάθε νόμιμου δικαιώματος. ΕΙΣΦΟΡΕΣ από τον Γιάννη Jensen, Microsoft Corporation.

Ιδιότητες

Αναγν. άρθρου: 199691 - Τελευταία αναθεώρηση: Παρασκευή, 24 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
Λέξεις-κλειδιά: 
kbexpertisebeginner kbautomation kbhowto kbmt KB199691 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:199691

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