Daten aus Excel: tagVARIANT -> AnsiString ??



  • Hallo

    Ich habe die bcb komponenten genommen und damit eine verbindung zu excel und einer arbeitsmappe aufgebaut. Hat funktioniert. Auch das schreiben geht:

    Tab -> Cells -> set_Item(OleVariant(y), OleVariant(y), OleVariant(StringToOleStr("test")));
    

    Was nicht geht ist das auslesen:

    ETab -> Cells -> get_Item(OleVariant(y), OleVariant(x))
    

    Wenn ich das richtig sehe liefert das ganze nen tagVARIANT item zurück.
    Und wenn ich die anderen Beiträge richtig verstanden habe ist das nur ein enum welches weitere variablen enthält.

    Hab mal nen bischen rumprobiert, aber wenn ich da was zurückbekomme dann nur Müll.
    Auch die anderen Beiträge die ich dazu gefunden habe haben mich nicht weitergebracht.

    Zur Not könnte ich natürlich noch euren ExcelWrapper benutzen. Aber wäre schön wenn ihr mir so helfen könntet. Solange such ich ma weiter in der msdn.

    mfg
    Blade



  • Hallo

    Probier mal TVarData.

    TVarData OleResult;
    AnsiString Result;
    OleResult = ETab -> Cells -> get_Item(OleVariant(y), OleVariant(x));
    AnsiString = OleResult.pcVal; // Ergebnis als Zeichenkette interpretieren
    

    bis bald
    akari



  • Konvertierung von tagVARIANT nach TVarData nicht möglich 😞

    ... aber trotzdem danke für die Idee ...

    irgendwer ne andere Anregung ?



  • Hallo

    sorry, hatte mich im Typ vertan. Statt TVarData muß es TVariant sein. Außerdem muß es bei mir statt OleVariant bei mir TVariantInParam heißen, damit es kompiliert :

    TVariant OleResult;
    AnsiString Result;
    OleResult = ETab -> Cells -> get_Item(TVariantInParam(y), TVariantInParam(x));
    AnsiString = OleResult; // Ergebnis als Zeichenkette interpretieren
    

    bis bald
    akari



  • TVariant OleResult;
           AnsiString Result;
                      OleResult = ETab -> Cells -> get_Item(OleVariant(2), OleVariant(3));
                      Result    = OleResult; // Ergebnis als Zeichenkette interpretieren
           ShowMessage(Result);
    

    juhuuuuu !!!

    So hat es funktioniert !!!!!!!

    Danke für die mega schnelle und kompetente Hilfe !!! ... war schon am verzweifeln. 🙂 😉 🙂

    DANKE DANKE DANKE DANKE !!!!!

    hey .. admins ... wie wärs damit für die faq ?? kann gerne meinen kompletten code dazu packen, weil sowas hab ich hier noch nich gefunden ...

    mfg

    Blade


Anmelden zum Antworten