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 bir araya getirebilir. Aspose.Words HTML içeriğin içe aktarılması da dahil olmak üzere tüm giriş biçimleriyle çalışırken birleştirilmiş hücreleri destekler.
Tablo Hücreleri Nasıl Birleştirilir
Aspose.Words’de, birleştirilmiş hücreler CellFormat sınıfının aşağıdaki özellikleriyle temsil edilir:
- HorizontalMerge hücrenin yatay hücre birleşmesinin bir parçası olup olmadığını açıklar
- VerticalMerge hücrenin dikey hücre birleşmesinin bir parçası olup olmadığını açıklar
Bu özelliklerin değerleri, hücrelerin birleştirme davranışını belirler:
- Birleştirilmiş hücreler dizisindeki ilk hücre CellMerge.First değerine sahip olacaktır
- Sonradan birleştirilen tüm hücreler CellMerge.Previous değerine sahip olacaktır
- Birleştirilmemiş bir hücrede CellMerge.None olacaktır
Hücrenin Birleştirilip Birleştirilmediğini kontrol edin
Bir hücrenin birleştirilmiş hücreler dizisinin bir 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:
Tablodaki Birleştirilmiş Hücreler
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ü ayarlamanız gerekir – önce CellMerge.First ve sonra CellMerge.Previous.
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ştirilir.
Aşağıdaki kod örneği, ilk satırdaki hücrelerin yatay olarak birleştirildiği iki satırlık 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
Varolan bir tabloda olduğu gibi DocumentBuilder ‘ın kullanılmadığı diğer durumlarda, hücreleri önceki şekilde birleştirmek o kadar kolay olmayabilir. Bunun yerine, birleştirme özelliklerini hücrelere uygulamakla ilgili temel işlemleri, görevi çok daha kolaylaştıran bir yöntemle sarabiliriz. 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 hücreden başlayıp son hücrede biten tablo hücrelerini belirtilen aralıkta birleştirecektir. Bu durumda, aralık birden çok satır veya sütunu kapsayabilir:
Aşağıdaki kod örneği, belirtilen iki hücre arasında bir hücre aralığının nasıl birleştirileceğini gösterir:
Kullandığınız Çerçevenin sürümüne bağlı olarak, bu yöntemi bir uzantı yöntemine dönüştürerek daraltmak isteyebilirsiniz. Bu durumda, cell1.Merge(cell2)
gibi bir hücre aralığını birleştirmek için bu yöntemi doğrudan bir hücrede çağırabilirsiniz.
Tablodaki Dikey ve Yatay Birleştirilmiş Hücreler
Önceki makalelerde söylediğimiz gibi, Microsoft Word içindeki bir tablo bağımsız satırlar kümesidir. Her satır, diğer satırların hücrelerinden bağımsız bir dizi hücreye sahiptir. Bu nedenle, Microsoft Word tablosunda “sütun” diye bir nesne yoktur ve “1 st sütunu”, “tablodaki her satırın 1 st hücrelerinin kümesi” gibi bir şeydir. Bu, kullanıcıların örneğin 1 st satırının iki hücreden (2 cm ve 1 cm) ve 2 nd satırının iki farklı hücreden (1 cm ve 2 cm genişliğinde) oluştuğu bir tabloya sahip olmalarını sağlar. Ve Aspose.Words bu tablo kavramını destekler.
HTML ‘deki bir tablo esasen farklı bir yapıya sahiptir: her satır aynı sayıda hücreye sahiptir ve (görev için önemlidir) her hücre karşılık gelen sütunun genişliğine sahiptir, bir sütundaki tüm hücreler için aynıdır. Bu nedenle, 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
Hücreler yatay olarak birleştirildiğinde Microsoft Word’in bazı yeni sürümleri artık birleştirme bayraklarını kullanmadığı için bazen hangi hücrelerin birleştirildiğini tespit etmek mümkün değildir. Ancak, hücrelerin birleştirme bayrakları kullanılarak genişliklerine göre yatay olarak bir hücreye birleştirildiği durumlar için Aspose.Words, hücreleri dönüştürmek için ConvertToHorizontallyMergedCells
yöntemini sağlar. Bu yöntem yalnızca tabloyu dönüştürür ve gerektiğinde yeni hücreler ekler.
Aşağıdaki kod örneği, işlemdeki yukarıdaki yöntemi gösterir: