Excel 97 VS 2000



  • hi,
    hab nen Cpp to Excel Interface gemacht. Das ganze war für Excel 97 konzepiert. Jetzt haben die bei uns in der Firma auf einigen Rechnern Excel 2000 und da gibts problehme. Eigentlich hab ich schon eine versionsprüfung, doch leider gibts dannach immernoch fehler. Nun zu meiner Frage.
    1. ist Excel 2k/XP abwärtskompatiebel
    2. Wenn nein wie mach ich das.

    die Prüfung:

    /*
      Excel.Application.8 // MS Excel '97
      Excel.Application.9 // MS Excel 2000
      Excel.Application.10 // MS Excel XP
      */
      try
      {
        try
        {
          m_vExcel = CreateOleObject("Excel.Application.8");
        }
        catch(...)
        {
          try
          {
            m_vExcel = CreateOleObject("Excel.Application.9");
          }
          catch(...)
          {
            try
            {
              m_vExcel = CreateOleObject("Excel.Application.10");
            }
            catch(...)
            {
               m_vExcel = NULL;
            }
          }
        }
    

    Die genaue Fehlermeldung lautet:

    Im projekt Database.exe ist eine Exception der Klasse EVariantTypeCastError aufgetreten. Meldung: 'Ungültige Variant-Typumwandlung'



  • Ich habe bisher keine Kompatibilitätsprobleme gehabt bei der Automatisierung von Excel97 bzw. -2K.
    Ich hab' dabei immer das Interface von Excel97 benutzt. Wenn du bei Excel.Application.8 bleibst, sollte es bei allen neueren Versionen auch klappen, also kannst du dir aus meiner Sicht die try()s sparen (ausser, du willst Spezifika der einzelnen Versionen nutzen).



  • hab den Fehler inzwischen behoben.

    @KrautFritz wenn ich die Spezifikatzion "Excel.Application.8" benutze gebt es ne Fehlermeldung fals Excel 97 nicht installiert ist. hab das jetzt so gemacht das ich die acht weglasse und damit die Version nicht beachte. "Excel.Application" hat den vorteil das jede Excel version angesprochen wird, und da ich das interface für Excel 97 gemacht habe kann ich sicher gehen das die neueren Versionen das unterstützen 🙂

    mfg Ich


Anmelden zum Antworten