unit MainExcel_Tabelle_Diagramm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, comobj, ExcelXP;
type
TForm1 =
class(TForm)
SG: TStringGrid;
btDatenNachExcel: TButton;
btStringGridMitDatenFuellen: TButton;
procedure btStringGridMitDatenFuellenClick(Sender: TObject);
procedure btDatenNachExcelClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
vEXCEL: OLEVariant;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btDatenNachExcelClick(Sender: TObject);
var
z, s: integer;
begin
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 sg.RowCount
do
begin
for s := 1
to sg.ColCount
do
begin
vExcel.cells[z, s].Value2 := SG.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;
// Diagrammtype auswählen
vExcel.Charts[1].ChartType:= xlColumnClustered;
// Die Diagrammseite einen Namen geben
vExcel.Charts[1].
Name := '
Test Diagramm';
// Aufräumen
ShowMessage('
Excel wird jetzt geschlossen');
vExcel.ActiveWorkbook.Save;
vExcel.Quit;
vExcel:= Unassigned;
end;
procedure TForm1.btStringGridMitDatenFuellenClick(Sender: TObject);
begin
with SG
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;
end;
end.