
Orijinal Mesaj Sahibi
b10n1c
Arakadaşlar yardımda bulanacak yok mu
google' bir kolaçan et derim, C# olsa yardım edebilirdim, Delphi pek bilmiyorum,
şu sayfadan bir alıntı.
Kod:
Forma ExcelApplication1 nesnesi koyarsın
Uses kısmına (En üsteki), OleServer,Excel97 yazmayı unutma
procedure TForm1.Button1Click(Sender: TObject);
var IRange : Excel97.Range;
i,Row : integer;
begin
if not ExcelApplication1.Visible[0] then //excel açıkmı
begin
excelApplication1.Visible[0]:= True;//açık değilse aç
excelApplication1.Workbooks.Add(NULL,0);//yeni çalışma litabı oluştur
end
else //excel açıksa yeni çalışma sayfası ekle
excelApplication1.Sheets.Add(Null,null,null,null,1);
// Alan Başlıkları
IRange := excelApplication1.ActiveCell;
for i := 0 to Table1.Fields.count-1 do
begin
IRange.Value := Table1.Fields[i].DisplayLabel;
IRange := IRange.Next;
end;
// Kayıt Alanları
Table1.DisableControls;
try
Table1.First;
Row :=2;
while Not Table1.Eof do
begin
IRange := ExcelApplication1.Range['A'+IntToStr(Row),'A'+IntToStr(Row)];
for i := 0 to Table1.Fields.Count-1 do
begin
IRange.Value := Table1.Fields[i].Value;
IRange := IRange.Next;
end;
Table1.Next;
Inc(Row);
end;
finally
Table1.EnableControls;
end;
// Auto format
IRange:= ExcelApplication1.Range['A1','D'+IntToStr(Row-1)];
IRange.AutoFormat(6,Null,Null,Null,Null,Null,Null);
end;
ayrıca basit excel çıktısı almak istiyorsanız
şu şekilde aralara tab boşlukları atarak bir stringi xls olarak kaydederseniz, her tab arasını ayrı bir hücre olarak görecektir.
(örneğin aşağıdaki kodu notepad'a kopyalayıp, xls uzantısında kaydederseniz, excel ile açtığınızda her birini ayrı hücrelere dağıtacaktır. Formülleri de yazıp hesaplamalar da yapabilir. Örneğin 2x1'in altına =TOPLA(A1;A2) yazarsanız, formulü de algılar. 1x1, 2x1 yerine yazılan sayıları toplayabilir.
Kod:
1x1 1x2 1x3 1x4 1x5
2x1 2x2 2x3 2x4 2x5