Mega Code Archive

 
Categories / Delphi / Activex OLE
 

[] Delphi - excel

//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.