unit DatenGridAnzeigeUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Grids, StdCtrls;
const
// Daten für die StringGrid um die Überschriften Anzuzeigen.
SPALTEN_MAX= 7;
// Max. Anzahl-Spalten im StringGrid
ZEILEN_MAX= 10;
// Max. Anzahl-Zeilen im StringGrid
SPALTEN_BEZ:
array [0..SPALTEN_MAX-1]
of String = ('
Spalte 1',
'
Spalte 2',
'
Spalte 3',
'
Spalte 4',
'
Spalte 5',
'
Spalte 6',
'
Spalte 7');
SPALTE1_INHALT:
array [0..ZEILEN_MAX-1]
of String = ('
Zeile 1',
'
Zeile 2',
'
Zeile 3',
'
Zeile 4',
'
Zeile 5',
'
Zeile 6',
'
Zeile 7',
'
Zeile 8',
'
Zeile 9',
'
Zeile 10');
type
TForm1 =
class(TForm)
ExcelTabSpeichern: TSaveDialog;
Button1: TButton;
DatenGitter: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
uses XLSDateiUnit;
// Daten aus einem StringGrid in eine XLS-Datei abspeichern.
{$R *.dfm}
{-------------------------------------------------------------------------------
procedure: SpaltenBezInStringGrid;
Funktion: Damit werden die Splaten von Tab (StringGrid) beschriftet.
Parameter: Sp_Bez: const String-Array für die Bezeichungen der Spalten
Tab: TStringGrid welches beschriftet werden soll.
letz.Ändr.: 25.06.2007
Version: 1.00
-------------------------------------------------------------------------------}
procedure SpaltenBezInStringGrid(
const Sp_Bez:
array of String;
Tab: TStringGrid);
var
I: Integer;
begin
Tab.ColCount:= High(Sp_Bez)+1;
// Soviel Spalten setzen wie es Überschriften
// gibt.
for I := 0
to High(Sp_Bez)
do
begin
Tab.Cells[I, 0]:= Sp_Bez[I];
// Spaltenüberschriften in StringGrid
// schreiben.
end;
end;
{-------------------------------------------------------------------------------
procedure: Spalte1ZeileSchreiben;
Funktion: Damit werden die Splaten von Tab (StringGrid) beschriftet.
Parameter: Sp1_Bez: const String-Array für die Bezeichungen der 1 Spalten
Tab: TStringGrid welches beschriftet werden soll.
letz.Ändr.: 25.06.2007
Version: 1.00
-------------------------------------------------------------------------------}
procedure Spalte1ZeileSchreiben(
const Sp1_Bez:
array of String;
Tab: TStringGrid);
var
I: Integer;
begin
Tab.RowCount:= High(Sp1_Bez)+1;
for I := 0
to High(Sp1_Bez)
do
begin
Tab.Cells[0, I]:= Sp1_Bez[I];
end;
end;
{------------------------------------------------------------------------------}
procedure Spalte2Bis7Fuellen(Ze: integer; Tab: TStringGrid);
var
I: Integer;
begin
Randomize;
for I := 1
to ZEILEN_MAX- 1
do
begin
with Tab
do
begin
Cells[1,I]:= TimeToStr(Time+(Random(3)/10));
// Uhrzeit eintragen
Cells[2,I]:= FloatToStr(Random(65000)/3.2);
// Double-Zahl eintragen
Cells[3,I]:= IntToStr(Random(100000));
// Integer-Zahlen eintragen
Cells[4,I]:= DateToStr(Date+(Random(10)/3));
// Datums-Werte eintragen
Cells[5,I]:= FloatToStr(Random(20000000)/3.2);
// Double-Zahl eintragen
Cells[6,I]:= FloatToStr(10*I);
// Double-Zahl eintragen
end;
end;
end;
{------------------------------------------------------------------------------}
function XLS_LWPathDateiname(
const DateiVorgabe, OrdnerVorgabe:
String;
SD: TSaveDialog):
String;
begin
// Unter XLS-Dateierweiterung die XLS-Datei abspeichern.
SD.Filter:= '
Microsoft Excel-Arbeitsmappe (*.xls)|*.XLS';
SD.DefaultExt:= '
XLS';
sd.InitialDir := OrdnerVorgabe;
SD.FileName:= DateiVorgabe;
if SD.Execute
then
begin
Result:= SD.FileName;
// Der aktuelle DateiName wird zurückgegeben.
end;
end;
{------------------------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
XLSOrdner:
String;
XLSDateiName:
String;
begin
// Unter XLS-Dateierweiterung die XLS-Datei abspeichern.
XLSOrdner:= '
F:\Excel-ProgammOrdner\Beispiel Daten';
XLSDateiName:= '
DelphiDemoXLS.xls';
XLSDateiName:= XLS_LWPathDateiname(XLSDateiName, XLSOrdner,
ExcelTabSpeichern);
// Daten vom StringGrid: Datengitter in eine XLS-Datei speichern.
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
DatenInXLSDateiUebertragen(XLSDateiName, DatenGitter);
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
end;
{------------------------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
begin
// StringGrid mit Daten füllen
SpaltenBezInStringGrid(SPALTEN_BEZ, DatenGitter);
// Überschriften in Daten-
// schreiben.
Spalte1ZeileSchreiben(SPALTE1_INHALT, DatenGitter);
// Erste Spalte ausfüllen.
Spalte2Bis7Fuellen(ZEILEN_MAX, DatenGitter);
// Zufalls-Zahlen
end;
end.