stringridde bazı kriterlere göre boyanmış hücreler var ve excele kaydederken yanlızca hücre içindeki yazıyı aktarıyo fakat ben ondrawcellde boyadığım haliyle excele kopyalamak istiyorum..nasıl yapabilirim sizce?
ayrıca birde excelin her kolonunun genişliğin nasıl ayarlayabilirim?
stringgridi excele aktarımda excel hücresini boyama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: stringgridi excele aktarımda excel hücresini boyama
nerden bulduğumu hatırlamıyorum ama excel ile ilgil ipuçları bulmuştum. if then lerler sende drawcell ine göre uygulayabileceğini umuyorum.
Uses satırına eklenecek; ComObj
Değişkenlerimizi 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:\gerizekali.xls');
Yeni çalışma sayfası ekler.
XLApp.WorkBooks.Add;
Yeniden adlandır
XLApp.ActiveSheet.Name := 'geri zekali';
//Aktif Sayfanın ismini değiştirir
XLApp.Workbooks[1].WorkSheets[1].Name := 'GeriZekali';
//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 := 'Ben bir Geri Zekalıyım';
//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:\GeriZekali.xls');
//Çalışma sayfasını kaydeder
XLApp.ActiveWorkBook.SaveAs('c:\GeriZekali.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
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.
Uses satırına eklenecek; ComObj
Değişkenlerimizi 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:\gerizekali.xls');
Yeni çalışma sayfası ekler.
XLApp.WorkBooks.Add;
Yeniden adlandır
XLApp.ActiveSheet.Name := 'geri zekali';
//Aktif Sayfanın ismini değiştirir
XLApp.Workbooks[1].WorkSheets[1].Name := 'GeriZekali';
//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 := 'Ben bir Geri Zekalıyım';
//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:\GeriZekali.xls');
//Çalışma sayfasını kaydeder
XLApp.ActiveWorkBook.SaveAs('c:\GeriZekali.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
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.
Kod: Tümünü seç
www.muratdişikırık.com.tr
Re: stringgridi excele aktarımda excel hücresini boyama
kardes hersey için saul bana delphıde form ma resim ekleme komut yada komutları lazım eger yardımcı olursan cok sevırınırım teskkur ederım
Re: stringgridi excele aktarımda excel hücresini boyama
s.a.
Bu soruyu neden foruma yazmadın merak ettim. Aslında ben moderatör değilim veya onlar kadar delphi bilgisine sahip değilim diyebilirim. Ama sormuşsun bildiğim kadarıyla cevap vereyim. her hangi bir aşamada (mesela Buton.OnClick olayı) bir form unda Image1 nesnesi yarat. Özelliklerini ver ve en sonunda
Image1.Picture.LoadFromFile('C:\resim.bmp'); komutuyla Form üzerindeki Image nesnene resmi eklemiş olursun.
Bu soruyu neden foruma yazmadın merak ettim. Aslında ben moderatör değilim veya onlar kadar delphi bilgisine sahip değilim diyebilirim. Ama sormuşsun bildiğim kadarıyla cevap vereyim. her hangi bir aşamada (mesela Buton.OnClick olayı) bir form unda Image1 nesnesi yarat. Özelliklerini ver ve en sonunda
Image1.Picture.LoadFromFile('C:\resim.bmp'); komutuyla Form üzerindeki Image nesnene resmi eklemiş olursun.
Kod: Tümünü seç
www.muratdişikırık.com.tr