Tablo Hücrelerini Birleştir

Bazen bir tablodaki belirli satırlar, tablonun tüm genişliğini kaplayan bir başlık veya büyük metin blokları gerektirir. Tablonun doğru tasarımı için kullanıcı birkaç tablo hücresini tek bir hücrede birleştirebilir. Aspose.Words, HTML içeriğinin içe aktarılması da dahil olmak üzere tüm giriş formatlarıyla çalışırken birleştirilmiş hücreleri destekler.

Tablo Hücreleri Nasıl Birleştirilir

Aspose.Words’te birleştirilmiş hücreler, CellFormat sınıfının aşağıdaki özellikleriyle temsil edilir:

  • Hücrenin yatay hücre birleşiminin parçası olup olmadığını açıklayan HorizontalMerge
  • Hücrenin dikey hücre birleşiminin parçası olup olmadığını açıklayan VerticalMerge

Bu özelliklerin değerleri hücrelerin birleştirme davranışını belirler:

Hücrenin Birleştirilip Birleştirilmediğini Kontrol Edin

Bir hücrenin birleştirilmiş hücre dizisinin parçası olup olmadığını kontrol etmek için HorizontalMerge ve VerticalMerge özelliklerini kontrol etmemiz yeterlidir.

Aşağıdaki kod örneği, yatay ve dikey hücre birleştirme türünün nasıl yazdırılacağını gösterir:

DocumentBuilder’ı Kullanırken Tablo Hücrelerini Birleştir

DocumentBuilder ile oluşturulan bir tablodaki hücreleri birleştirmek için, birleştirmenin beklendiği her hücre için uygun birleştirme türünü (önce CellMerge.First, ardından CellMerge.Previous) ayarlamanız gerekir.

Ayrıca, birleştirmenin gerekli olmadığı hücreler için birleştirme ayarını temizlemeyi de unutmamalısınız; bu, birleştirilmeyen ilk hücreyi CellMerge.None olarak ayarlayarak yapılabilir. Bu yapılmazsa tablodaki tüm hücreler birleştirilecektir.

Aşağıdaki kod örneği, ilk satırdaki hücrelerin yatay olarak birleştirildiği iki satırlı bir tablonun nasıl oluşturulacağını gösterir:

Aşağıdaki kod örneği, ilk sütundaki hücrelerin dikey olarak birleştirildiği iki sütunlu bir tablonun nasıl oluşturulacağını gösterir:

Diğer Durumlarda Tablo Hücrelerini Birleştir

Mevcut bir tabloda olduğu gibi DocumentBuilder‘in kullanılmadığı diğer durumlarda, hücreleri önceki yöntemle birleştirmek o kadar kolay olmayabilir. Bunun yerine, birleştirme özelliklerinin hücrelere uygulanmasıyla ilgili temel işlemleri, görevi çok daha kolay hale getiren bir yöntemle tamamlayabiliriz. Bu yöntem, bir tablodaki hücre aralığını birleştirmek için çağrılan Birleştirme otomasyonu yöntemine benzer.

Aşağıdaki kod, belirtilen aralıktaki tablo hücrelerini, verilen hücreden başlayıp son hücreye kadar birleştirecektir. Bu durumda aralık birden çok satıra veya sütuna yayılabilir:

Aşağıdaki kod örneği, belirli iki hücre arasında bir hücre aralığının nasıl birleştirileceğini gösterir:

Kullandığınız .NET Framework sürümüne bağlı olarak bu yöntemi bir uzantı yöntemine dönüştürerek geliştirmek isteyebilirsiniz. Bu durumda, cell1.Merge(cell2) gibi bir hücre aralığını birleştirmek için bu yöntemi doğrudan bir hücre üzerinde çağırabilirsiniz.

HTML Tablosunda Dikey ve Yatay Birleştirilmiş Hücreler

Önceki yazılarımızda da söylediğimiz gibi Microsoft Word’teki bir tablo, bağımsız satırlardan oluşan bir kümedir. Her satırda diğer satırların hücrelerinden bağımsız bir dizi hücre bulunur. Dolayısıyla Microsoft Word tablosunda “sütun” diye bir nesne yoktur ve “1. sütun”, “tablodaki her satırın 1. hücrelerinin kümesi” gibi bir şeydir. Bu, kullanıcıların örneğin 1. satırın 2cm ve 1cm genişliğinde iki hücreden oluştuğu ve 2. satırın 1cm ve 2cm genişliğinde iki farklı hücreden oluştuğu bir masaya sahip olmasına olanak tanır. Ve Aspose.Words bu tablo konseptini desteklemektedir.

HTML’deki bir tablo temelde farklı bir yapıya sahiptir: her satır aynı sayıda hücreye sahiptir ve (görev için önemlidir) her hücre, bir sütundaki tüm hücreler için aynı olan, karşılık gelen sütunun genişliğine sahiptir. HorizontalMerge ve VerticalMerge yanlış bir değer döndürürse aşağıdaki kod örneğini kullanın:

Yatay Olarak Birleştirilmiş Hücrelere Dönüştür

Bazen Microsoft Word’in bazı yeni sürümleri, hücreler yatay olarak birleştirildiğinde artık birleştirme işaretlerini kullanmadığından hangi hücrelerin birleştirildiğini tespit etmek mümkün olmayabilir. Ancak hücrelerin, birleştirme bayrakları kullanılarak genişliklerine göre yatay olarak bir hücrede birleştirildiği durumlarda, Aspose.Words, hücreleri dönüştürmek için ConvertToHorizontallyMergedCells yöntemini sağlar. Bu yöntem basitçe tabloyu dönüştürür ve gerektiğinde yeni hücreler ekler.

Aşağıdaki kod örneği, yukarıdaki yöntemin çalışmasını gösterir: