EOleSysError "Falscher Variablentyp"
-
l.Pfad ist AnsiString, was mach ich Falsch? Ohne das geht es.
void Excel::savePreislisteToFile(Preisliste l) { try{ Variant Excel_d; try { Excel_d = Variant::CreateObject("Excel.Application"); } catch(...) { Excel_d = Variant::CreateObject("Excel.Application"); } Variant WorkBooks = Excel_d.OlePropertyGet("WorkBooks"); WorkBooks.OleFunction("Add"); Variant ActiveWorkBook = Excel_d.OlePropertyGet("ActiveWorkbook"); Variant WorkSheets = Excel_d.OlePropertyGet("Worksheets"); Variant WorkSheet = WorkSheets.OlePropertyGet("Item", 1); for( int i = 0; i < l.Nummer.size(); i ++ ) { Variant Spalte_Nummer = WorkSheet.OlePropertyGet("Cells",1+i,1); if( i == 0 ) { Spalte_Nummer.OlePropertySet("Value","Nummer"); } else { Spalte_Nummer.OlePropertySet("Value",l.Pfad); } } WorkSheet.OleFunction("Activate"); ActiveWorkBook.OleFunction("SaveAs","C:\\test.xls"); }catch(...){ } }
thx
-
verwende
l.Pfad.c_str();
Edit:
Muss es wirklich direkt eine XLS Datei sein?
Würde nicht einfach eine CSV Datei reichen die Excel auch ließt?Denn du wirst Feststellen, das wenn du mehrere Zellen einfügst es sehr sehr langsam von statten geht und eine Fortschrittsanzeige eigentlich zur Pflich wird!
-
leider ist xls pflicht, csv ist aber auch interessant. Muss ich mal sehn wie csv geht. Aber viele Daten sind es ja nicht
Danke!
Btw: Hat Borland eigentlich Komponenten dafür die ich benutzen kann zum auslesen und schreiben? (BcB 6), hab da mämlich was gesehen....
-
Hallo
Es gibt im Builder die TExcel...-Klassen. Aber die Kapseln auch nur die OLE-Funktionalität, du wirst also nicht umhin kommen die OLE-Befehle zu benutzen.
Wie das genau geht steht in dem bereits erwähnten FAQ-Artikel zu Excelbis bald
akari