Announcement

Collapse
No announcement yet.

Excel- Blatt unter MFC

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Excel- Blatt unter MFC

    Hallo Leute,
    nachdem ich nach meinem Problem in allen mir bekannten Seiten gesucht und keine behilfliche Idee gefunden habe, vesuche ich Hilfe bei Ihnen zu finden

    Ich arbeite in einem Projekt, und ich muss Excel unter MFC steuern.
    ich habe den code aus der Seite http://support.microsoft.com wie folgt abgeschrieben:

    Code:
    CApplication app;
    CWorkbooks books;
    CWorkbook book;
    CWorksheets sheets;
    CWorksheet sheet;
    ...
    
    // Start Excel and get an Application object.
    if(!app.CreateDispatch("Excel.Application"))
    {
        AfxMessageBox("Couldn't start Excel and get Application object.");
        return;
    }
    
    //Get a new workbook.
    books = app.get_Workbooks();
     :warning: book = books.Add (covOptional);
    ...
    Aber die Add-Methode wurde vom Kompiler nicht akzeptiert mit der Meldung:
    Add-Methode braucht 3-Parameter. Tatsächlich ist keine Add-Methode mit einem einzigen Parameter in der automatisch generierten CWorkbooks-Klasse.
    Hier ist ein Auszug der Datei CWorkbooks.h, die vom Klassenassistent aus dem Typbibliothek (Mikrosoft Excel 11.0) erzeugt wurde:


    Code:
    // CWorkbooks Wrapperklasse
    
    #import "C:\\Programme\\Gemeinsame Dateien\\Microsoft Shared\\OFFICE11\\MSO.DLL" \
    rename( "RGB", "MSORGB" )
    
    using namespace Office;
    
    #import "C:\\Programme\\Gemeinsame Dateien\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB"
    
    using namespace VBIDE;
    
    #import "C:\\Programme\\Microsoft Office\\OFFICE11\\EXCEL.EXE" \
            rename("DialogBox", "ExclDialogBox") \
            rename("RGB", "ExclRGB") \
            rename("CopyFile", "ExclCopyFile") \
            rename("ReplaceText", "ExclReplaceText") \
            rename("Font", "ExcelFont")  \
            rename("Parameter", "ExcelParameter")  \
            rename("DocumentProperties", "ExcelDocumentProperties") \
            rename("ExitWindows", "ExcelExitWindows") \
            rename("Rectangle", "ExcelRectangle") \
            rename("Arc", "ExcelArc") \
            rename("Picture", "ExcelPicture") 
    
    using namespace Office;
    
    class CWorkbooks : public COleDispatchDriver
    {
    public:
    	CWorkbooks(){} // Ruft den COleDispatchDriver-Standardkonstruktor auf
    	CWorkbooks(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
    	CWorkbooks(const CWorkbooks& dispatchSrc) : COleDispatchDriver
             (dispatchSrc) {}
    
    	// Attribute
    public:
    
    	// Vorgänge
    public:
    
    
    	// IParameters Methoden
    public:
         Application get_Application()
         {
          Application result;
          InvokeHelper(0x94, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, 
          NULL);
          return result;
          }
    
          XlCreator get_Creator()
          {
           XlCreator result;
           InvokeHelper(0x95, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
           return result;
           }
    	
           LPDISPATCH get_Parent()
           {
            LPDISPATCH result;
            InvokeHelper(0x96, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, 
            NULL);
            return result;
            }
    
            STDMETHOD(Add)(LPCTSTR Name, VARIANT& iDataType, Parameter * * RHS)
            {
    	HRESULT result;
    	static BYTE parms[] = VTS_BSTR VTS_VARIANT VTS_PDISPATCH ;
    	InvokeHelper(0xb5, DISPATCH_METHOD, VT_HRESULT, (void*)&result, 
             parms, Name, &iDataType, RHS);
    	return result;
    	}	
    
             long get_Count()
    	{
    	long result;
    	InvokeHelper(0x76, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
    	return result;
    	}
    
    	STDMETHOD(Item)(VARIANT& Index, Parameter * * RHS)
    	{
    	HRESULT result;
    	static BYTE parms[] = VTS_VARIANT VTS_PDISPATCH ;
    	InvokeHelper(0xaa, DISPATCH_METHOD, VT_HRESULT, (void*)&result, 
             parms, &Index, RHS);
    	return result;
    	}
    
    	Parameter get__Default(VARIANT& Index)
    	{
    	Parameter result;
    	static BYTE parms[] = VTS_VARIANT ;
    	InvokeHelper(0x0, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, 
             parms, &Index);
    	return result;
    	}
    
    	STDMETHOD(Delete)()
    	{
    	HRESULT result;
    	InvokeHelper(0x75, DISPATCH_METHOD, VT_HRESULT, (void*)&result, NULL);
    	return result;
    	}
    
    	STDMETHOD(_NewEnum)(LPUNKNOWN * RHS)
    	{
    	HRESULT result;
    	static BYTE parms[] = VTS_PUNKNOWN ;
    	InvokeHelper(0xfffffffc, DISPATCH_METHOD, VT_HRESULT, (void*)&result, 
             parms, RHS);
    	return result;
    	}
    
    	// IParameters Eigenschaften
    public:
    
    };
    Danke,
Working...
X