Hallo messie,
ein Beispiel:
Die Daten werden zuerst in einem StringGrid eintragen, anschließend in einem Excel-Sheet übertragen. Danach werden diese Daten in einem Diagramm angezeigt.
Mit ChartWizard werden die Daten dann in einer anderen Datentype in Excel geändert.
Delphi-Quellcode:
procedure TForm1.btExcel_Dia_erstellenClick(Sender: TObject);
var
z, s: integer;
SG1: TStringGrid;
vExcel: OLEVariant;
begin
try
SG1 := TStringGrid.Create(self);
SG1.Parent:= self;
SG1.Height:= 145;
SG1.Left:= 72;
SG1.Top:= 176;
SG1.Width:= 145;
// Daten in einem StrinGrid eintragen
with SG1 Do
begin
Cells[0,0] := 'Umsatz';
Cells[1,0] := 'Kosten';
Cells[0,1] := '500';
Cells[0,2] := '400';
Cells[0,3] := '300';
Cells[0,4] := '800';
Cells[1,1] := '300';
Cells[1,2] := '500';
Cells[1,3] := '900';
Cells[1,4] := '700';
end;
// Excel starten
try
vExcel := CreateOleObject('Excel.Application');
except
ShowMessage('Excel konnte nicht gestartet werden!');
Exit;
end;
vExcel.Visible := TRUE;
vExcel.Application.Caption:= 'Demo für Diagramm Erstellung';
vExcel.WorkBooks.Add;
vExcel.WorkSheets[1].Name := 'Tabelle mit Daten';
// Ab hier werden die Daten von StringGrid nach Excel exportiert.
// Zu beachten ist das die erste Zeile/Spalte im StringGrid = 0 ist und
// bei Excel =1
for z := 1 to SG1.RowCount do
begin
for s := 1 to SG1.ColCount do
begin
vExcel.cells[z, s].Value2 := SG1.Cells[s-1, z-1];
end;
end;
// Werte Tabelle in Excel markieren
vExcel.ActiveWorkbook.WorkSheets['Tabelle mit Daten'].Range['A1:B5'].Select;
// Neue Diagramm-Seite anlegen
vExcel.Charts.Add;
// Die Diagrammseite einen Namen geben
vExcel.Charts[1].Name := 'Test Diagramm';
// Diagrammtype auswählen
vExcel.Charts[1].ChartType:= xlLineStacked;
ShowMessage('Diagramm anzeigen');
// Einen neuen Diagrammtype auswählen
vExcel.Charts[1].ChartWizard (Gallery:= xlXYScatter);
ShowMessage('Die Daten in einem anderen Diagramm anzeigen');
vExcel.ActiveWorkbook.Saved:= TRUE;
vExcel.ActiveWorkbook.Close;
vExcel.Quit;
vExcel:= Unassigned;
finally
SG1.Free;
end;
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.