Bir Word belgesindeki tablolar, verileri açık ve yapılandırılmış bir biçimde düzenlemek ve sunmak için güçlü bir araçtır. Tablo; metin, sayı, resim veya diğer öğeleri içerebilen hücreleri oluşturmak üzere kesişen satır ve sütunlardan oluşur. Bu yazıda C# kullanarak programlı olarak Word belgelerinde tablo oluşturmayı öğreneceğiz. Bu makalede, kod örnekleriyle desteklenen bir DOCX dosyasında tablolar oluşturmaya yönelik çeşitli yöntemler gösterilmektedir.
Bu makale aşağıdaki konuları kapsamaktadır:
- Word Belgelerinde Tablo Oluşturmak için C# Kitaplığı
- Word Belgesinde Tablo Oluşturma
- Word Belgelerinde İç İçe Tablo Oluşturma
- Word Belgesinde Mevcut Bir Tabloyu Klonlama
- HTML’den Tablo Oluşturma
Word Belgelerinde Tablo Oluşturmak için C# Kitaplığı
Word belgelerindeki tablolarla çalışmak için Aspose.Words for .NET kitaplığını kullanacağız. Word belgelerini doğrudan .NET uygulamaları içinde programlı olarak dinamik olarak oluşturmanıza ve değiştirmenize olanak tanıyan sağlam bir kitaplıktır.
Lütfen DLL’yi indirin veya aşağıdaki komutu kullanarak NuGet’ten yükleyin:
PM> Install-Package Aspose.Words
C#’ta Word Belgesinde Tablo Oluşturma
Aspose.Words for .NET kullanarak Word belgelerinde tablo oluşturmanın iki yolu vardır:
- DocumentBuilder sınıfını kullanma
- DOM’u (Belge Nesne Modeli) Kullanma
İhtiyaçlarınıza en uygun yöntemi seçebilirsiniz. Öyleyse bu yöntemlerin her birini ayrıntılı olarak inceleyelim.
DocumentBuilder’ı kullanarak Tablo Oluşturma
DocumentBuilder sınıfı, sıfırdan dinamik belgelerin verimli ve zahmetsizce oluşturulmasına veya mevcut belgelerde değişiklik yapılmasına olanak tanır. Kapsamlı işlev yelpazesi sayesinde metin, onay kutuları, OLE nesneleri, paragraflar, listeler, tablolar, resimler ve çok daha fazlasını içeren çeşitli içerik öğelerini sorunsuz bir şekilde ekleyebiliriz.
DocumentBuilder sınıfını kullanarak Word belgesinde tablo oluşturmak için lütfen aşağıdaki adımları izleyin.
- Document sınıfının bir nesnesini oluşturun.
- DocumentBuilder sınıfının bir nesnesini oluşturun.
- StartTable() yöntemini kullanarak yeni bir tablo oluşturun.
- InsertCell() yöntemini kullanarak bir hücre ekleyin.
- Write() yöntemini kullanarak hücreye metin ekleyin.
- Gerektiğinde hücrelere ve metin eklemeyi tekrarlayın.
- EndRow() yöntemini kullanarak bir satırı sonlandırın.
- EndTable() yöntemini kullanarak tabloyu sonlandırın.
- Son olarak Save() yöntemini kullanarak Word belgesini kaydedin.
Aşağıdaki kod örneği, C# kullanarak bir Word belgesinde nasıl tablo oluşturulacağını gösterir.
// Bu kod örneği, C# kullanarak bir Word belgesinde nasıl tablo oluşturulacağını gösterir
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Masayı oluşturmaya başlayın.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");
// İkinci hücreyi oluşturun.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");
// Satırı sonlandırıp yeni bir satır başlatmak için aşağıdaki yöntemi çağırın.
builder.EndRow();
// İkinci satırın ilk hücresini oluşturun.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");
// İkinci hücreyi oluşturun.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();
// Masayı oluşturmayı bitirdiğimizi belirtin.
builder.EndTable();
doc.Save("CreateSimpleTable.docx");
Belge Nesne Modelini (DOM) Kullanarak Tablo Oluşturma
Belge Nesne Modeli (DOM), bir Word belgesinin bellek içi temsilidir. Bir Word belgesinin içeriğini ve biçimlendirmesini okumak, değiştirmek ve değiştirmek için programlı erişim sağlar.
DOM kullanarak Word belgesinde tablo oluşturmak için lütfen aşağıdaki adımları izleyin.
- Document sınıfının bir nesnesini oluşturun.
- Table() sınıfını kullanarak yeni bir tablo oluşturun.
- AppendChild() yöntemini kullanarak belge gövdesine bir tablo ekleyin.
- Row sınıfının bir nesnesini oluşturun ve Table.AppendChild(Row) yöntemini kullanarak bunu tabloya ekleyin.
- Cell sınıfının bir nesnesini oluşturun, biçimlendirme seçeneklerini ayarlayın ve hücreye metin ekleyin.
- Row.AppendChild(Cell) yöntemini kullanarak hücreyi satıra ekleyin.
- Daha sonra işlemi istediğiniz sayıda satır için tekrarlayın.
- Son olarak Save() yöntemini kullanarak Word belgesini kaydedin.
Aşağıdaki kod örneği, C# kullanarak bir Word belgesinde nasıl tablo oluşturulacağını gösterir.
// Bu kod örneği, C# dilinde DOM kullanarak bir Word belgesinde nasıl tablo oluşturulacağını gösterir.
Document doc = new Document();
// Tablo nesnesini oluşturarak başlıyoruz. Belge nesnesini aktarmamız gerektiğini unutmayın
// her düğümün yapıcısına. Bunun nedeni, yarattığımız her düğümün ait olması gerektiğidir.
// bazı belgelere.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);
// Burada bizim için satırları ve hücreleri oluşturmak için ProvidingMinimum'u çağırabiliriz. Bu yöntem kullanılıyor
// Belirtilen düğümün geçerli olduğundan emin olmak için. Bu durumda geçerli bir tablonun en az bir Satır ve bir hücreye sahip olması gerekir.
// Bunun yerine sırayı ve tabloyu kendimiz oluşturmayı ele alacağız.
// Bir algoritmanın içinde bir tablo oluşturuyor olsaydık, bunu yapmanın en iyi yolu bu olurdu.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);
// Artık herhangi bir otomatik sığdırma ayarını uygulayabiliriz.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);
Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));
// Hücre ekle
row.AppendChild(cell);
// Daha sonra işlemi tablodaki diğer hücreler ve satırlar için tekrarlayacağız.
// Mevcut hücreleri ve satırları klonlayarak da işleri hızlandırabiliriz.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));
// Belgeyi kaydet
doc.Save("InsertTableDirectly.docx");
C# kullanarak Word Belgesinde İç İçe Tablo Oluşturma
Ayrıca tablonun bir hücresinde yeni bir tablo da oluşturabiliriz. Word belgesinde iç içe tablo oluşturma adımları aşağıda verilmiştir.
- Document sınıfının bir nesnesini oluşturun.
- DocumentBuilder sınıfının bir nesnesini oluşturun.
- StartTable() yöntemini kullanarak bir tablo oluşturun ve bir nesnedeki tabloya referans alın.
- InsertCell() yöntemini kullanarak bir hücre ekleyin ve bir nesnedeki hücreye başvuru alın.
- DocumentBuilder.Write() yöntemini kullanarak bir hücreye metin ekleyin.
- Gerektiğinde hücrelere ve metin eklemeyi tekrarlayın.
- Tüm satırları eklediğinizde tabloyu sonlandırın.
- MoveTo(cell.FirstParagraph) yöntemini kullanarak denetimi istenen hücrenin içine taşıyın.
- Hücreleri ekleyerek başka bir tablo oluşturun ve işiniz bittiğinde tabloyu sonlandırın.
- Son olarak Word belgesini Save() yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, C# kullanarak bir Word belgesinde iç içe tablonun nasıl oluşturulacağını gösterir.
// Bu kod örneği, C# kullanarak bir Word belgesinde iç içe tablonun nasıl oluşturulacağını gösterir
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");
builder.InsertCell();
builder.Writeln("Outer Table Cell 2");
// Bu çağrı, ilk tablonun içinde iç içe bir tablo oluşturmak için önemlidir.
// Bu çağrı olmadan aşağıya eklenen hücreler dış tabloya eklenecektir.
builder.EndTable();
// Dış tablonun ilk hücresine gidin.
builder.MoveTo(cell.FirstParagraph);
// İç masayı oluşturun.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();
// Belgeyi kaydet
doc.Save("NestedTable.docx");
C#’ta Word Belgesindeki Mevcut Bir Tabloyu Klonlama
Aşağıdaki adımları izleyerek bir Word belgesindeki mevcut bir tabloyu kopyalayabiliriz:
- Document sınıfını kullanarak mevcut bir belgeyi bir tabloyla yükleyin.
- GetChild(NodeType.TABLE, int, boolean) yöntemini kullanarak tabloyu bir nesneye alın.
- Table.Clone(True) yöntemini kullanarak bir tabloyu kopyalayın.
- Table.ParentNode.InsertAfter() yöntemini kullanarak klonlanmış bir tablo ekleyin.
- Table.ParentNode.InsertAfter(new Paragraph(Document), Table) yöntemini kullanarak tablolar arasına boş bir paragraf ekleyin.
- Son olarak Save() yöntemini kullanarak Word belgesini kaydedin.
Aşağıdaki kod örneği, C# kullanarak bir Word belgesindeki bir tablonun nasıl kopyalanacağını gösterir.
// Bu kod örneği, C# kullanarak bir Word belgesinde mevcut bir tablonun nasıl kopyalanacağını gösterir
Document doc = new Document("Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// Tabloyu kopyalayın ve belgeye orijinalin arkasına ekleyin.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);
// İki tablo arasına boş bir paragraf ekleyin,
// Aksi takdirde, kaydedildikten sonra tek bir belgede birleştirileceklerdir, bunun belge doğrulamayla ilgisi vardır.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
doc.Save("CloneCompleteTable.docx");
HTML’den Word Belgesinde Tablo Oluşturma
Aşağıdaki adımları izleyerek bir HTML dizesi kullanarak bir Word belgesinde de tablo oluşturabiliriz:
- Document sınıfının bir nesnesini oluşturun.
- DocumentBuilder sınıfının bir nesnesini oluşturun.
- DocumentBuilder.InsertHtml(String) yöntemini kullanarak tablonun HTML dizesini belgeye ekleyin.
- Son olarak Document.Save() yöntemini kullanarak belgeyi kaydedin.
Aşağıdaki kod örneği, C# kullanarak bir Word belgesine HTML tablosunun nasıl ekleneceğini gösterir.
// Bu kod örneği, C# kullanarak bir Word belgesine HTML tablosunun nasıl ekleneceğini gösterir
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// AutoFitSettings'in HTML'den eklenen tablolara uygulanmadığını unutmayın.
builder.InsertHtml("<table>" +
"<tr>" +
"<td>Row 1, Cell 1</td>" +
"<td>Row 1, Cell 2</td>" +
"</tr>" +
"<tr>" +
"<td>Row 2, Cell 2</td>" +
"<td>Row 2, Cell 2</td>" +
"</tr>" +
"</table>");
doc.Save("InsertTableFromHtml.docx");
Ücretsiz API Lisansı Alın
Aspose.Words for .NET’i değerlendirme sınırlaması olmadan kullanmak için geçici lisans alabilirsiniz.
Çözüm
Bu yazımızda C# kullanarak Word belgelerinde tablo oluşturmayı öğrendik. C# kullanarak programlı olarak tablo oluşturmak için çeşitli yöntemler araştırdık. Ayrıca iç içe tabloların nasıl oluşturulacağını veya Word belgelerinde mevcut tabloların dinamik olarak nasıl kopyalanacağını da gördük. Ayrıca, belgeleri kullanarak daha fazla bilgi edinebilir ve kütüphanenin diğer çeşitli özelliklerini keşfedebilirsiniz. Herhangi bir belirsizlik durumunda lütfen ücretsiz destek forumumuz üzerinden bizimle iletişime geçmekten çekinmeyin.