EXCEL: Daten in eine Excel-Datei schreiben



  • Hi Leutz,

    ich habe mal wieder ein Problem. Ich möchte mit mienem Programm
    auf eine Excel-Datei (In der schon Daten enthalten sind) zugreifen,
    und Daten in bestimmte Spalten/Zeilen eingeben.
    z. B.:
    Programm: Der Programmbenutzer gibt seinen Namen ein: "Muster Mustermann"
    Das Programm öffnet eine Excel-Datei die wie folgt aussieht, in der der
    Vor- und Nachname vom Programm eingetragen wird (Hier schon eingetragen).

    Excel:

    /|___A___|_____B_____|___C___| D | E |
    --------------------------------------
    1|__AAA0_|___AAA1___ |__AAA2_|___|___|
    2|Muster_|Mustermann |_______|___|___|
    3|__CCC__|__CCC______|_______|___|___|
    4|_____|_____|_______|_______|___|___|
    5|_____|_____|_______|_______|___|___|
    

    Vielen dank schon mal für eure Hilfe!

    Edit:
    Zur Textformatierung einfach die Code-Tags benutzen.



  • //--Excel offnen: (z.B.  AnsiString datei = "C:\\test.xls")
     Variant Excel; 
         Excel = Variant::CreateObject("Excel.Application"); 
         Excel.OlePropertyGet("ActiveWorkBook"); 
            Excel.OlePropertyGet("WorkBooks").OleFunction("Open",StringToOleStr(datei)); 
    
    //--Tabelle offnen: 
     Variant Sheet; 
         Sheet=Excel.OlePropertyGet("Sheets","Tabelle1"); 
    //--irgentwas auslesen(z.B. Datum)(von Zelle "A1") 
    AnsiStrig Datum = Sheet.OlePropertyGet("Cells",1,1).OlePropertySet("Value"); 
    
    //--irgentwas eintragen(z.B. Datum)(in Zelle !!"J5") 
    Sheet.OlePropertyGet("Cells",5,9).OlePropertySet("Value",StringToOleStr(Datum)); 
    
    //--Excel speichern: 
      Excel.OleFunction("ActiveWorkBook").OlePropertyGet("Save"); 
    //--Exel schlesen: 
      Excel.OleFunction("Quit"); 
       Excel = Unassigned;
    


  • Danke erst einmal für Deinen Lösungsvorschlag.
    Der hat mich einen ganzen Schritt weiter gebracht!
    Ich benötige jetzt aber noch eine zusätzliche Funktion, und
    zwar währe es gut wenn ich OHNE installiertem EXCEL auf eine
    *.xls Dateien zugreifen könnte - also die o. g. Daten in
    eine neu und eine vorhandene *.xls Datei schreiben könnte
    und die Daten auch wieder auslesen könnte -.
    Eine Lösung würde mich nochmals einen großen Schritt weiter bringen.



  • Microsoft hat dieses Excel-Format nicht offen gelegt. Du kannst die Datei nur mit Excel bearbeiten. In zukünftigen Versionen von Excel/Word baut das Dateifromat auf XML auf. Dann kannst du die Dateien verändern.



  • Kannst aber auch versuchen das Excel Format zu entschlüsseln und dir dann eine eigene Klasse schreiben, mit der du auf Excel Dateien zugreifen kannst. 😉

    Oder du nimmst was fertiges wie die XLSReadWriteII Komponente,die allerdings nicht umsonst ist.
    http://axolot.com/components/
    Eventuell gibt es sowas auch kostenlos ????


Anmelden zum Antworten