Activex OLE Delphi

//Kenan Çakmak esquire01@hotmail.com
Uses satırına eklenecek
--------------------------------------------------------------------------------
ComObj
Değişkenlerimi tanımlayalım
--------------------------------------------------------------------------------
var
XLApp : OleVariant;
ColonAraligi : OleVariant;
const
alignCenter = -4108;
valignCenter = -4108;
alignRight =- 4152;
Excel Kontrolu
--------------------------------------------------------------------------------
try
XLApp := GetActiveOleObject('Excel.Application');
except
try
XLApp := CreateOleObject('Excel.Application');
except
ShowMessage('Excel kurulu değil');
Exit;
end;
end;
Var olan br excel'i açma
--------------------------------------------------------------------------------
XLApp.Workbooks.Open('c:\g.xls');
Yeni çalışma sayfası ekler.
--------------------------------------------------------------------------------
XLApp.WorkBooks.Add;
Yeniden adlandır
--------------------------------------------------------------------------------
XLApp.ActiveSheet.Name := 'Deneme';
//Aktif Sayfanın ismini değiştirir
XLApp.Workbooks[1].WorkSheets[1].Name := 'Sayfa';
//Belirttiğiniz sayfanın ismini değişirir.
Excel görünsün, görünmesin
--------------------------------------------------------------------------------
XLApp.Visible := True;
//Gösterir
XLApp.Visible := False;
//Gizler
Hücre Seçme
--------------------------------------------------------------------------------
XLApp.Range('A1:J25').Select;
Hücreleri Birleştirme
--------------------------------------------------------------------------------
XLApp.Range['A1:C1'].Mergecells := True;
//A1 den C1 e kadar olan hücreleri birleştirir
Hücre Hizalama
--------------------------------------------------------------------------------
XLApp.Cells[1, 1].HorizontalAlignment := AlignCenter;
//Yatay Hizalama
XLApp.Cells[1, 1].VerticalAlignment := valignCenter;
//Dikey Hizalama
Satır Yüksekliği
--------------------------------------------------------------------------------
XLApp.Rows[1].RowHeight := 30;
Border
--------------------------------------------------------------------------------
XLApp.Range[A1,C1].Borders.Weight := 1;
Border Rengi
--------------------------------------------------------------------------------
XLApp.Cells[1, 1]..Borders[1].Colorindex := -4142;
Font Ayarları
--------------------------------------------------------------------------------
XLApp.Range['A1:A1'].Font.Bold := True;
//Bold yapar
XLApp.Range['A1:A1'].Font.Size := 12;
//Size 12 yapar
Gridleri gizler
--------------------------------------------------------------------------------
XLApp.ActiveWindow.DisplayGridlines := False;
Değer atama
--------------------------------------------------------------------------------
XLApp.Cells[1, 1].Value := 'Esquire01den Selamlar';
//yukarida A,C hücrelerini birleştirdiğimiz için bundan sonra aynı satırda bir sonraki hücreye bir değer atamak istersek
XLApp.Cells[1, 4].Value := 'deneme'; dememiz gerekli
Kolon Aralığı
--------------------------------------------------------------------------------
ColonAraligi := XLApp.Workbooks[1].WorkSheets[1].Columns;
ColonAraligi.Columns[4].ColumnWidth := 25;
//burada ColonAraligi : OleVariant; değişkenimizden yararlandık, 4. kolonun genişliğini 25 yaptık.
//Kolon Otomatik Genişlesin
XLApp.selection.Columns.AutoFit;
Rakamları Formatlama
--------------------------------------------------------------------------------
XLApp.WorkBooks[1].WorkSheets[1].Columns[2].NumberFormat := '#.##0';
//2 kolona girilecek sayıları formatladık 1.250.000 şeklinde
XLApp.WorkBooks[1].WorkSheets[1].Columns[2].NumberFormat := ";
//Formatlı bir hücreyi formatsız yapar.
Tarih Formatlama
--------------------------------------------------------------------------------
XLApp.Cells[1,1].Value := FormatDateTime('dd-mmm-yyyy', Now);
Formuller
--------------------------------------------------------------------------------
XLApp.Range['A5', 'A5'].Formula := '=Sum(A1:A4)';
//A1 hücresinden A4 hücresine kadar Toplar Değerlerini A5 hücresine yazar.
Kaydet
--------------------------------------------------------------------------------
XLApp.SaveAs('c:\G.xls');
//Çalışma sayfasını kaydeder
XLApp.ActiveWorkBook.SaveAs('c:\G.xls');
//Aktif sayfayı kaydeder.
Yazıcı Ayarları
--------------------------------------------------------------------------------
//Kenarlıklar
XLApp.ActiveSheet.PageSetup.LeftMargin := 0;
XLApp.ActiveSheet.PageSetup.RightMargin := 0;
XLApp.ActiveSheet.PageSetup.TopMargin := 0;
XLApp.ActiveSheet.PageSetup.BottomMargin := 0;
//Hizalama
XLApp.ActiveSheet.PageSetup.CenterHorizontally := 1;
//Yatay Olarak Ortaya alır
XLApp.ActiveSheet.PageSetup.CenterVertically := 1;
//Dikey Olarak Ortaya Alır
//Sayfa Ayarları
XLApp.ActiveSheet.PageSetup.Orientation := 2;
//2 yatay 1 dikey olarak ayarlar.
Alt Bilgi
--------------------------------------------------------------------------------
XLApp.ActiveSheet.PageSetup.LeftFooter := 'Rapor Tarihi : ' + '&D';
//O günü tarihini sayfanın alt bilgi kısmına basalım
Kaçıncı Sayfa
--------------------------------------------------------------------------------
XLApp.ActiveSheet.PageSetup.RightFooter := 'Sayfa : ' + '&P'+'/'+'&N';
//Yazıcıdan aldığımız sayfaların kaç sayfada hangi sayfa bilgisini gösterir
Alt Bilgi için diğer parametreler
--------------------------------------------------------------------------------
&L
&C
&R
&E
&X
&Y
&B
&I
&U
&S
&D
&T
&F
&A
&P
&P+number
&P-number
&&
& "Font Adı"
&nn
&N
//bunarın karşılıklarınıda artık zahmet edip tektek deneyerek anlamlarını bulunuz. :)) (Yaşasın Kötülük)
Tekrar Eden Saatırlar
--------------------------------------------------------------------------------
XLApp.ActiveSheet.PageSetup.PrintTitleRows := '$2:$2';
//Yazılan Sayfada başlık olarak tekrar etmesini sağlarız.
İstediğiniz hücreleri $2:$2 dediğimizde ikinci satırı olduğu gibi her print edilen sayfanın başında gösterir
Yazıcı Renkli, Renksiz
--------------------------------------------------------------------------------
XLApp.ActiveSheet.PageSetup.BlackAndWhite := False;
Yazıcı Görüntüsü
--------------------------------------------------------------------------------
XLApp.ActiveSheet.PrintPreview;
Kopya Sayısı
--------------------------------------------------------------------------------
XLApp.ActiveWindow.SelectedSheets.PrintOut (Copies := 1);
//Kaç Kopyası Olsun
//Sığdır
XLApp.ActiveSheet.PageSetup.Zoom := 65;
//Çalışma Sayfanızı 1 Sayfaya Sığdırır.
Kapat
--------------------------------------------------------------------------------
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
XLApp:=unassigned;
//Formunuzun OnDestroy olayına bu satırları yazınki form kapandığında Excel havada asılı kalmasın.