ผสานเซลล์ตาราง

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

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

ในAspose.Wordsเซลล์ที่ผสานจะถูกแสดงโดยคุณสมบัติต่อไปนี้ของCellFormatคลาส:

  • HorizontalMergeซึ่งอธิบายว่าเซลล์เป็นส่วนหนึ่งของการรวมแนวนอนของเซลล์
  • VerticalMergeซึ่งอธิบายว่าเซลล์เป็นส่วนหนึ่งของการรวมแนวตั้งของเซลล์

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

  • เซลล์แรกในลำดับของเซลล์ที่ผสานจะมีCellMerge.First
  • เซลล์ที่ผสานในภายหลังจะมีCellMerge.Previous
  • เซลล์ที่ไม่รวมจะมีCellMerge.None

work-with-merged-cells-aspose-words-java

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

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

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

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

เมื่อต้องการผสานเซลล์ในตารางที่สร้างขึ้นด้วยDocumentBuilderคุณต้องตั้งค่าประเภทการผสานที่เหมาะสมสำหรับแต่ละเซลล์ที่คาดว่าการผสาน-ก่อนCellMerge.Firstและจากนั้นCellMerge.Previous.

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

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

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

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

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

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

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

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

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

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

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

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

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