Cara mengotomatisasi menggunakan Visual c ++ untuk menyimpan lembar kerja Excel sebagai HTML file

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 199691 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Jika Anda memiliki Internet asisten Wizard add-in (Html.xla) diinstal, Microsoft Excel 97 atau Excel 2000 menyediakan pilihan menu pada File menu untuk menyimpan lembar kerja sebagai berkas HTML.

Artikel ini menyediakan contoh kode untuk melakukan hal yang sama melalui otomatisasi, menggunakan htmlConvert makro yang disediakan oleh Wizard. Kode memerlukan Excel 97 dengan Service Release 2 atau versi yang lebih baru dari Excel.

INFORMASI LEBIH LANJUT

Untuk menggunakan Wisaya asisten Internet melalui pengguna antarmuka Excel, Html.xla buku kerja harus ditambahkan ke daftar Add-Ins (dari Tools menu), dan harus diperiksa untuk menunjukkan bahwa ia terinstal. Karena berkas .xla adalah bentuk buku kerja, itu harus juga dibuka; ini adalah dilakukan untuk Anda secara otomatis oleh manajer Add-In ketika bekerja di Excel interaktif, tetapi tidak ketika bekerja di otomatisasi. Setelah dibuka, dari Berkas menu, klik Simpan sebagai HTML dan bekerja dengan Wizard untuk menyimpan file dalam HTML format.

Untuk mencapai hal yang sama di Visual c + +, menggunakan Microsoft Yayasan kelas (MFC), Anda menggunakan anggota Run Excel _Application objek untuk menjalankan makro langsung daripada bekerja melalui wizard.

Dengan adaptasi, kode Visual C++ dalam artikel ini dapat digunakan dalam Anda aplikasi. Namun, tujuan artikel ini adalah untuk membantu Anda belajar, baik oleh berjalan melalui kode dan menjalankan program.

Contoh menganggap buku kerja yang ada bernama "Book1.xls" di akar dari pengandar c: \. Memiliki rentang nilai dari $$ 7 untuk $D$ 10.

Langkah-langkah untuk membuat proyek

  1. Ikuti langkah-langkah 1 sampai 13 di Microsoft berikut Artikel Basis Pengetahuan untuk membuat contoh proyek:
    178749 Cara membuat sebuah proyek otomatisasi menggunakan MFC dan perpustakaan jenis
    Ketika bekerja dengan Microsoft Excel 2002 atau versi yang lebih baru dari Excel, typelib dimasukkan ke dalam Excel eksekusi. Secara default, Excel.exe terletak di salah satu lokasi-lokasi berikut:
    • Microsoft Office Excel 2007: C: program files Microsoft Office Office12
    • Microsoft Office Excel 2003: C:\Program Files\Microsoft Office\Office11
    • Microsoft Excel 2002: C:\Program Files\Microsoft Office\Office10
  2. Tambahkan kode berikut untuk CAutoProjectDlg::OnRun() event handler di berkas 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
    

REFERENSI

Untuk informasi tambahan tentang menggunakan MFC untuk melakukan otomatisasi, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
178749Cara membuat proyek otomatisasi menggunakan MFC dan perpustakaan jenis


(c) Microsoft Corporation 1998, All Rights Reserved. Kontribusi oleh Chris Jensen, Microsoft Corporation.

Properti

ID Artikel: 199691 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0
Berlaku bagi:
  • 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
Kata kunci: 
kbexpertisebeginner kbautomation kbhowto kbmt KB199691 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:199691

Berikan Masukan

 

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