![]() |
Zahlenwerte an Excel übergeben (Zellen ansprechen)
Hallo! :)
Ich habe eine Frage: Wie kann ich Zahlenwerte aus Delphi, in Excel übergeben, d.h. Zellen ansprechen ? :gruebel: Ich weiss nur soviel, dass man OLE verwenden muß. O.K. damit kann ich ein Excel-Arbeitsblatt öffnen. Aber wie bekomme ich meine Werte in dieses Arbeitsblatt. Im Forum habe ich nichts gefunden (bzw. hab nichts verstanden). An einen StrinGrid habe ich sie bereits übergeben können, aber wie geht das mit Excel? Wie kann ich die Zellen ansprechen oder muß ich vorher noch etwas beachten... Wäre nett wenn jemand mir weiter helfen könnte. :idea: Gruß Mucki :wink: |
Re: Zahlenwerte an Excel übergeben (Zellen ansprechen)
Hallo Mucki,
vielleicht hilft dir das weiter:
Delphi-Quellcode:
Bis bald Chemiker
unit excelzahlUnit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation var Excel : Variant; {$R *.dfm} {------------------------------------------------------------------------------} { EXCEL starten } {------------------------------------------------------------------------------} function f_EXCEL (var m_EXCEL : Variant): boolean; begin try m_EXCEL := CreateOleObject('Excel.Application'); Result := TRUE; except ShowMessage('Excel konnte nicht gestartet werden!'); Result := FALSE; Exit end; end; procedure TForm1.Button1Click(Sender: TObject); var zahl : string; begin if f_Excel(Excel)then // Excel startet ShowMessage('MSExcel ist erfolgreich gestartet worden!!') else ShowMessage('MSExcel konnte nicht gestartet werden!!'); Excel.Visible := TRUE; // TRUE = Excel sichtbar. Excel.Application.Workbooks.Add; // Neue Arbeitsmappe öffnen in EXECL Excel.Range['A1'].Select; {Auf die erste Zelle setzen } Excel.Worksheets ['Tabelle1'].Activate; zahl:= inttostr(100); Excel.cells[1, 1].Value := zahl; // Bei StringGrid wär der Index [0,0] Excel.Workbooks.Close; // Excel wieder schliessen. end; end. |
Re: Zahlenwerte an Excel übergeben (Zellen ansprechen)
Hmmm ja das muß ich mal ausprobieren! :|
Danke Chemiker. :) |
Re: Zahlenwerte an Excel übergeben (Zellen ansprechen)
Genau sowas habe ich gesucht, aber ich würde das gerne habe das excel das im hintergrund alleine speichert unter einem vorgegeben Namen, also ohne das dazu eine Abfrage usw... kommt. Leider bekomme ich, wenn ich Excel. eingebe keine Hilfe um zusehen welche Möglichkeiten ich habe, sonst hätte ich das sicherlich alleine hinbekommen, ich hoffe das ihr mir da weiterhelfen könnt.
|
Re: Zahlenwerte an Excel übergeben (Zellen ansprechen)
das problem das mir keine hilfe angezeigt wird hab ich auch, mir wird auch immer alles als fehler angezeigt, aber compelieren tut ers trotzdem ohne probleme...
würd mich aber ehrlich gesagt auch mal interessieren woran das liegt das da keine hilfe angezeigt wird... hier mal ein bsp. aus nem anderen beitrag wie ich das mit excel gemacht hab... ![]() |
Re: Zahlenwerte an Excel übergeben (Zellen ansprechen)
hmm, hab mir das angeschaut aber komme da irgendwie nicht weiter....ich möchte das der das automatisch abspeichert aber Excel.Close(true, 'C:\test1.xls', False); scheint da wohl falsch zu sein, echt schade das man die bei Excel. keine weitere Hilfe kommt.
|
Re: Zahlenwerte an Excel übergeben (Zellen ansprechen)
Hallo Mucki, Brueckenhauer und Andidreas,
die Hilfe die Ihr braucht steht unter Visual Basic-Editor, und da unter Hilfe nachschauen. Unter Menü-Punkt: Extras Makro Visual Basic-Editor Um an die Syntax der Excel-Befehl zu kommen kann es sinnvoll sein sie zuvor als Makro in Excel aufzeichnen zu lassen und anschliessend in Delphi umzusetzen. Für das direkte Abspeichern könnte man so vorgehen (Das funktioniert aber nur, wenn die Datei noch nicht vorhanden ist.
Delphi-Quellcode:
Das UP wird dann so aufgerufen:
procedure ExcelAbspeichern (m_Excel: Variant; ExcelDateiName: String);
begin m_Excel.ActiveWorkbook.Saved:= FALSE; // Excel schliessen ohne Nachfragen m_Excel.ActiveWorkbook.Close (saveChanges:= TRUE, FileName:= ExcelDateiName); m_Excel.Quit; end;
Delphi-Quellcode:
Die Anweisung : " Excel.Workbooks.Close;" muss dann natürlich aus dem Programm gelöscht werden.
ExcelAbspeichern (Excel, 'c:\Test Excel Abspeichern.xls');
Bis bald Chemiker |
Re: Zahlenwerte an Excel übergeben (Zellen ansprechen)
Ich hätte auch ne Unit zum nativen schreiben von Excel-Dateien im Angebot. Vorteil: Excel muss auf dem Zielrechner nicht installiert sein, Nachteil: Nur Prozeduren zum Schreiben von Flaots, Integers und Strings. Keinerlei Formatierungsmöglichkeiten oder sonstiges.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz