stringgridi excele aktarımda excel hücresini boyama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
M@Rty
Üye
Mesajlar: 1
Kayıt: 02 Nis 2008 05:32

stringgridi excele aktarımda excel hücresini boyama

Mesaj gönderen M@Rty »

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?
Kullanıcı avatarı
mudipasa
Üye
Mesajlar: 169
Kayıt: 13 Tem 2004 02:25
Konum: Batman

Re: stringgridi excele aktarımda excel hücresini boyama

Mesaj gönderen mudipasa »

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.

Kod: Tümünü seç

www.muratdişikırık.com.tr
befenbao
Üye
Mesajlar: 2
Kayıt: 07 Nis 2008 07:48

Re: stringgridi excele aktarımda excel hücresini boyama

Mesaj gönderen befenbao »

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 :?: :?:
Kullanıcı avatarı
mudipasa
Üye
Mesajlar: 169
Kayıt: 13 Tem 2004 02:25
Konum: Batman

Re: stringgridi excele aktarımda excel hücresini boyama

Mesaj gönderen mudipasa »

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.

Kod: Tümünü seç

www.muratdişikırık.com.tr
Cevapla