---
title: "ผสานเซลล์ตารางในในJava"
---


บางครั้งบางแถวในตารางต้องมีหัวข้อหรือบล็อกขนาดใหญ่ของข้อความที่ใช้ความกว้างเต็ม สำหรับการออกแบบที่เหมาะสมของตารางผู้ใช้สามารถผสานเซลล์ตารางหลายเป็นหนึ่ง Aspose.Wordsรองรับการรวมเซลล์เมื่อทำงานกับรูปแบบการป้อนข้อมูลทั้งหมดรวมทั้งการนำเข้าHTMLเนื้อหา.

## วิธีการผสานเซลล์ตาราง

ในAspose.Wordsเซลล์ที่ผสานจะถูกแสดงโดยคุณสมบัติต่อไปนี้ของ[CellFormat](https://reference.aspose.com/words/java/com.aspose.words/cellformat/)คลาส:

- [HorizontalMerge](https://reference.aspose.com/words/java/com.aspose.words/cellformat/#getHorizontalMerge)ซึ่งอธิบายว่าเซลล์เป็นส่วนหนึ่งของการรวมแนวนอนของเซลล์
- [VerticalMerge](https://reference.aspose.com/words/java/com.aspose.words/cellformat/#getVerticalMerge)ซึ่งอธิบายว่าเซลล์เป็นส่วนหนึ่งของการรวมแนวตั้งของเซลล์

ค่าของคุณสมบัติเหล่านี้กำหนดพฤติกรรมผสานของเซลล์:

- เซลล์แรกในลำดับของเซลล์ที่ผสานจะมี[CellMerge.First](https://reference.aspose.com/words/java/com.aspose.words/cellmerge/#FIRST)
- เซลล์ที่ผสานในภายหลังจะมี[CellMerge.Previous](https://reference.aspose.com/words/java/com.aspose.words/cellmerge/#PREVIOUS)
- เซลล์ที่ไม่รวมจะมี[CellMerge.None](https://reference.aspose.com/words/java/com.aspose.words/cellmerge/#NONE)

![work-with-merged-cells-aspose-words-java](/words/java/working-with-merged-cells/working-with-merged-cells-1.png)

{{% alert color="primary" %}}

บางครั้งเมื่อโหลดเซลล์เอกสารที่มีอยู่ในตารางพวกเขาจะปรากฏรวม อย่างไรก็ตามมันอาจเป็นเซลล์ยาวหนึ่งเซลล์-บางครั้งMicrosoft Wordส่งออกเซลล์ที่ผสานด้วยวิธีนี้ นเมื่อพยายามที่จะทำงานกับแต่ละเซลล์,แต่มีไม่ได้ดูเหมือนจะเป็นรูปแบบใดๆโดยเฉพาะอย่.

{{% /alert %}}

## การตรวจสอบว่ามีการรวมเซลล์หรือไม่

หากต้องการตรวจสอบว่าเซลล์เป็นส่วนหนึ่งของลำดับของเซลล์ที่ผสาน,เราเพียงแค่ตรวจสอบ**HorizontalMerge**และ**VerticalMerge**คุณสมบัติ.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการพิมพ์ชนิดผสานเซลล์แนวนอนและแนวตั้ง:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "check-cells-merged.java" >}}

## ผสานเซลล์ตารางเมื่อใช้DocumentBuilder

เมื่อต้องการผสานเซลล์ในตารางที่สร้างขึ้นด้วย[DocumentBuilder](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/)คุณต้องตั้งค่าประเภทการผสานที่เหมาะสมสำหรับแต่ละเซลล์ที่คาดว่าการผสาน-ก่อน**CellMerge.First**และจากนั้น**CellMerge.Previous**.

นอกจากนี้คุณต้องจำไว้ว่าให้ล้างการตั้งค่าผสานสำหรับเซลล์เหล่านั้นที่ไม่จำเป็นต้องผสานซึ่งสามารถทำได้โดยการตั้งค่าเซลล์ที่ไม่รวมเป็น**CellMerge.None** ล์ทั้งหมดในตารางจะถูกผสาน.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้างตารางที่มีสองแถวที่เซลล์ในแถวแรกถูกรวมในแนวน:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "horizontal-merge.java" >}}

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้างตารางสองคอลัมน์ที่เซลล์ในคอลัมน์แรกจะรวมในแน:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "vertical-merge.java" >}}

## ผสานเซลล์ตารางในกรณีอื่นๆ

ในสถานการณ์อื่นๆที่ไม่ได้ใช้**DocumentBuilder**เช่นในตารางที่มีอยู่การรวมเซลล์ในลักษณะก่อนหน้านี้อาจไม่ง่า แต่เราสามารถห่อการดำเนินงานขั้นพื้นฐานที่เกี่ยวข้องกับการใช้คุณสมบัติผสานกับเซลล์ในวิธีการที่ทำให้งานง่ายขึ้นมาก วิธีการนี้จะคล้ายกับวิธีการผสานอัตโนมัติซึ่งเรียกว่าการผสานช่วงของเซลล์ในตาราง.

รหัสด้านล่างจะรวมเซลล์ตารางในช่วงที่ระบุ,เริ่มต้นที่เซลล์ที่กำหนดและสิ้นสุดที่เซลล์สิ้นสุด. ในกรณีนี้ช่วงสามารถสแปนหลายแถวหรือคอลัมน์:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "merge-cells.java" >}}

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการผสานช่วงของเซลล์ระหว่างสองเซลล์ที่ระบุ:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "merge-cell-range.java" >}}

## เซลล์รวมในแนวตั้งและแนวนอนในตารางHTML

ดังที่เราได้กล่าวในบทความก่อนหน้านี้ตารางในMicrosoft Wordคือชุดของแถวที่เป็นอิสระ แต่ละแถวมีชุดของเซลล์ที่เป็นอิสระจากเซลล์ของแถวอื่นๆ ดังนั้นในตารางMicrosoft Wordไม่มีวัตถุเช่น"คอลัมน์"และ"คอลัมน์ที่ 1"เป็นสิ่งที่ชอบ"ชุดของเซลล์ที่ 1 ของแต่ละแถวในตาราง" นี้จะช่วยให้ผู้ใช้มีตารางที่ยกตัวอย่างเช่นแถวที่ 1 ประกอบด้วยสองเซลล์-2 ซม.และ 1 ซม.และแถวที่ 2 ประกอบด้วยสองเซลล์ที่แตกต่างกัน–1 ซม.และกว้าง 2 ซม. และAspose.Wordsสนับสนุนแนวคิดของตารางนี้.

ตารางในHTMLมีโครงสร้างที่แตกต่างกันเป็นหลัก:แต่ละแถวมีหมายเลขเดียวกันของเซลล์และ(มั ดังนั้นถ้า**HorizontalMerge**และ**VerticalMerge**ส่งคืนค่าไม่ถูกต้องให้ใช้ตัวอย่างรหัสต่อไปนี้:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "print-horizontal-and-vertical-merged.java" >}}

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "horizontal-and-vertical-merge-helper-classes.java" >}}

## แปลงเป็นเซลล์รวมในแนวนอน

บางครั้งไม่สามารถตรวจจับว่าเซลล์ใดถูกผสานเนื่องจากรุ่นใหม่ของMicrosoft Wordบางรุ่นจะไม่ใช้ธงผสานเมื่อเซลล์ถูกผสานเข้าด้วยกันในแนวนอน แต่สำหรับสถานการณ์ที่เซลล์ถูกผสานเข้ากับเซลล์ในแนวนอนตามความกว้างโดยใช้ธงผสานAspose.Wordsจะมีวิธีแปลงเซลล์`ConvertToHorizontallyMergedCells` วิธีนี้เพียงแค่แปลงตารางและเพิ่มเซลล์ใหม่ตามความจำเป็น.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการข้างต้นในการดำเนินงาน:

{{< gist "aspose-words-gists" "4fe6fda3615c0c441401e2131533d93b" "convert-to-horizontally-merged-cells.java" >}}
