tabloyu word de istenilen yere ve şekilde gönderme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

tabloyu word de istenilen yere ve şekilde gönderme

Mesaj gönderen ALUCARD »

şeklindeki datayı aşağıdaki gibi Word de nasıl gönderebilirim.
En son ALUCARD tarafından 19 Oca 2016 07:10 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: tabloyu word de istenilen yere ve şekilde gönderme

Mesaj gönderen ALUCARD »

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
   WordApp, NewDoc, WordTable: OLEVariant;
   iRows, iCols, iGridRows, jGridCols: Integer;
 begin
   try
     // Word Oluştur
     WordApp := CreateOleObject('Word.Application');
   except
     // Hata Olursa Çık
     Exit;
   end;
   // Word u Göster
   WordApp.Visible := True;
   // Yeni Döküman Oluştur
   NewDoc := WordApp.Documents.Add;
   // Satır ve sütun Sayısı
   iCols := 9;
   iRows := 9;
   // Tablo ekle
   WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, iRows);
   for iGridRows := 1 to iRows do
     for jGridCols := 1 to iCols do
       WordTable.Cell(iGridRows, jGridCols).Range.Text :=
         StringGrid1.Cells[jGridCols - 1, iGridRows - 1];
   WordApp := Unassigned;
   NewDoc := Unassigned;
   WordTable := Unassigned;
end;
bu kodlarla string grid i worde aktarabiliyorum. ancak bu tablo bittikten sonta bir kaç satır atlayıp başka bir tablo oluşurtmak istiyorum. bunu nasıl yapabilirim.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Re: tabloyu word de istenilen yere ve şekilde gönderme

Mesaj gönderen ovural »

Kod: Tümünü seç

 WordApp := Unassigned;
   NewDoc := Unassigned;
   WordTable := Unassigned;
   
yukarıdaki satıları aşağıdaki şekilde düzeltirsen tekrar tablo ekleyebilirsin ..

Kod: Tümünü seç

   WordTable := Unassigned;


    WordApp.Selection.EndKey( wdStory ); // Worddeki En son satıra odaklan .. 
    WordApp.Selection.TypeParagraph; // Yeni parafrafa geç
    WordApp.Selection.TypeParagraph; // Yeni parafrafa geç

// Burayada tabloyu ekleme satırlarını eklersin .. 

   NewDoc := Unassigned;
   WordApp := Unassigned;

birde balık vermek yerine balık tutmayı öğretelim ..

word ve excelde makro kaydetme işlemi var .. makrı kaydedet e basıp yapmak istediklerini manuel yaptıktan sonra makroyu durdurup içeriğine bakarsan yaptığın işlemlerin kodlarını göreceksin .. o kodları delphiye adapte edebilirsin
Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: tabloyu word de istenilen yere ve şekilde gönderme

Mesaj gönderen ALUCARD »

ovural yazdı:word ve excelde makro kaydetme işlemi var .. makrı kaydedet e basıp yapmak istediklerini manuel yaptıktan sonra makroyu durdurup içeriğine bakarsan yaptığın işlemlerin kodlarını göreceksin .. o kodları delphiye adapte edebilirsin
hocam teşekkür ediyorum deneyeceğim. word makro oluşturma biliyorum ama o kodları delphiye dönüştüremiyorım.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: tabloyu word de istenilen yere ve şekilde gönderme

Mesaj gönderen ALUCARD »

Arkadaşlar wordde makro oluştuturup o kodları delphi çeviriyorum. çoğunlukla sorunumu hallediyorum. ancak iki tane sorunumu halledemedim.

birincisi tablo birleştirme

worddeki kod

Kod: Tümünü seç

Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
    Selection.Cells.Merge
bunu delphiye çeviremedim.

birde delphi ile wordde oluşturduğum tablolara kenarlık vermek istiyorum ama veremiyorum.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Re: tabloyu word de istenilen yere ve şekilde gönderme

Mesaj gönderen ovural »

Kod: Tümünü seç

var
   WordApp, NewDoc, WordTable: OLEVariant;
   iRows, iCols, iGridRows, jGridCols: Integer;

   BasHucre,BitHucre:OLEVariant;
 begin
   try
     // Word Oluştur
     WordApp := CreateOleObject('Word.Application');
   except
     // Hata Olursa Çık
     Exit;
   end;
   // Word u Göster
   WordApp.Visible := True;
   // Yeni Döküman Oluştur
   NewDoc := WordApp.Documents.Add;
   // Satır ve sütun Sayısı
   iCols := 5;
   iRows := 5;
   // Tablo ekle
   WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, iRows);
   for iGridRows := 1 to iRows do
     for jGridCols := 1 to iCols do
       WordTable.Cell(iGridRows, jGridCols).Range.Text :=    StringGrid1.Cells[jGridCols - 1, iGridRows - 1];



   WordTable.Columns.Item(3).Borders.Item(wdBorderLeft).LineStyle :=  wdLineStyleSingle;
   WordTable.Columns.Item(3).Borders.Item(wdBorderLeft).LineWidth :=  wdLineWidth050pt;
   WordTable.Columns.Item(3).Borders.Item(wdBorderLeft).Color :=  wdColorBlack;

   WordTable.Columns.Item(3).Borders.Item(wdBorderRight).LineStyle :=  wdLineStyleSingle;
   WordTable.Columns.Item(3).Borders.Item(wdBorderRight).LineWidth :=  wdLineWidth050pt;
   WordTable.Columns.Item(3).Borders.Item(wdBorderRight).Color :=  wdColorBlack;

   WordTable.Columns.Item(3).Borders.Item(wdBorderTop).LineStyle :=  wdLineStyleSingle;
   WordTable.Columns.Item(3).Borders.Item(wdBorderTop).LineWidth :=  wdLineWidth050pt;
   WordTable.Columns.Item(3).Borders.Item(wdBorderTop).Color :=  wdColorBlack;

   WordTable.Columns.Item(3).Borders.Item(wdBorderBottom).LineStyle :=  wdLineStyleSingle;
   WordTable.Columns.Item(3).Borders.Item(wdBorderBottom).LineWidth :=  wdLineWidth050pt;
   WordTable.Columns.Item(3).Borders.Item(wdBorderBottom).Color :=  wdColorBlack;

// Yukarıdaki kodlar belli bir kolona çerçeve atar .. gerekli ayarları kendine göre düzenlersin .. aşağıdaki kod ise Tüm Tabloya çerçeve atar .. 
   WordTable.Borders.Item(wdBorderLeft).LineStyle   :=  wdLineStyleSingle;
   WordTable.Borders.Item(wdBorderRight).LineStyle  :=  wdLineStyleSingle;
   WordTable.Borders.Item(wdBorderTop).LineStyle    :=  wdLineStyleSingle;
   WordTable.Borders.Item(wdBorderBottom).LineStyle :=  wdLineStyleSingle;
   WordTable.Borders.Item(wdBorderHorizontal).LineStyle :=  wdLineStyleSingle;
   WordTable.Borders.Item(wdBorderVertical).LineStyle :=  wdLineStyleSingle;


   BasHucre := WordTable.Cell(1,1);
   BitHucre := WordTable.Cell(2,2);
   BasHucre.Merge(BitHucre);


   WordTable := Unassigned;
   NewDoc := Unassigned;
   WordApp := Unassigned;



end;

Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
Cevapla