Tablodaki Metinle Çalışma

Önceki makalelerde de belirtildiği gibi, bir tablo genellikle düz metin içerir, ancak resimler ve hatta başka tablolar gibi diğer içerikler de tablo hücrelerine yerleştirilebilir.

Tabloya metin veya başka içerik eklemek, DocumentBuilder sınıfının uygun yöntemleri kullanılarak gerçekleştirilir ve “Tablo Oluştur” makalesinde anlatılmıştır. Bu yazımızda mevcut bir tablodaki metinle nasıl çalışılacağından bahsedeceğiz.

Tablodaki Metni Değiştirme

Aspose.Words’teki diğer düğümler gibi tablonun da Range nesnesine erişimi vardır. Tablo aralığı nesnesini kullanarak tablodaki metni değiştirebilirsiniz.

Değiştirme sırasında özel karakterleri kullanma yeteneği şu anda desteklenmektedir, dolayısıyla mevcut metni çok paragraflı metinle değiştirmek mümkündür. Bunu yapmak için ilgili Replace yönteminde açıklanan özel meta karakterleri kullanmanız gerekir.

Aşağıdaki kod örneği, bir tablonun tamamının hücrelerindeki bir metin dizesinin tüm örneklerinin nasıl değiştirileceğini gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table)doc.GetChild(NodeType.Table, 0, true);
table.Range.Replace("Carrots", "Eggs", new FindReplaceOptions(FindReplaceDirection.Forward));
table.LastRow.LastCell.Range.Replace("50", "20", new FindReplaceOptions(FindReplaceDirection.Forward));
doc.Save(ArtifactsDir + "FindAndReplace.ReplaceTextInTable.docx");
view raw replace-text.cs hosted with ❤ by GitHub

Düz Metni Tablodan veya Hücreden Çıkarma

Range nesnesini kullanarak ayrıca tüm tablo aralığındaki yöntemleri çağırabilir ve tabloyu düz metin olarak çıkarabilirsiniz. Bunu yapmak için Text özelliğini kullanın

Aşağıdaki kod örneği, bir tablonun metin aralığının nasıl yazdırılacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// The range text will include control characters such as "\a" for a cell.
// You can call ToString and pass SaveFormat.Text on the desired node to find the plain text content.
Console.WriteLine("Contents of the table: ");
Console.WriteLine(table.Range.Text);
view raw extract-text.cs hosted with ❤ by GitHub

Aynı teknik yalnızca tek tek tablo hücrelerinden içerik çıkarmak için kullanılır.

Aşağıdaki kod örneği, satır ve tablo öğelerinden oluşan bir metin aralığının nasıl yazdırılacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Console.WriteLine("\nContents of the row: ");
Console.WriteLine(table.Rows[1].Range.Text);
Console.WriteLine("\nContents of the cell: ");
Console.WriteLine(table.LastRow.LastCell.Range.Text);

Alternatif Tablo Metni ile Çalışmak

Microsoft Word tabloları, tabloda yer alan bilgilerin alternatif metinsel temsilini sağlayan bir table title ve table description‘e sahiptir.

Aspose.Words’de Title ve Description özelliklerini kullanarak tablo başlığı ve açıklaması da ekleyebilirsiniz. Bu özellikler, ISO/IEC 29500’e uygun DOCX belgeleri için anlamlıdır. ISO/IEC 29500’den önceki formatlarda kaydederken bu özellikler dikkate alınmaz.

Aşağıdaki kod örneği, bir tablonun başlık ve açıklama özelliklerinin nasıl ayarlanacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
table.Title = "Test title";
table.Description = "Test description";
OoxmlSaveOptions options = new OoxmlSaveOptions { Compliance = OoxmlCompliance.Iso29500_2008_Strict };
doc.CompatibilityOptions.OptimizeFor(Aspose.Words.Settings.MsWordVersion.Word2016);
doc.Save(ArtifactsDir + "WorkingWithTableStylesAndFormatting.TableTitleAndDescription.docx", options);