ผสานเซลล์ตาราง
บางครั้งบางแถวในตารางต้องมีหัวข้อหรือบล็อกขนาดใหญ่ของข้อความที่ใช้ความกว้างเต็ม สำหรับการออกแบบที่เหมาะสมของตารางผู้ใช้สามารถผสานเซลล์ตารางหลายเป็นหนึ่ง Aspose.Wordsรองรับการรวมเซลล์เมื่อทำงานกับรูปแบบการป้อนข้อมูลทั้งหมดรวมทั้งการนำเข้าHTMLเนื้อหา.
วิธีการผสานเซลล์ตาราง
ในAspose.Wordsเซลล์ที่ผสานจะถูกแสดงโดยคุณสมบัติต่อไปนี้ของCellFormatคลาส:
- HorizontalMergeซึ่งอธิบายว่าเซลล์เป็นส่วนหนึ่งของการรวมแนวนอนของเซลล์
- VerticalMergeซึ่งอธิบายว่าเซลล์เป็นส่วนหนึ่งของการรวมแนวตั้งของเซลล์
ค่าของคุณสมบัติเหล่านี้กำหนดพฤติกรรมผสานของเซลล์:
- เซลล์แรกในลำดับของเซลล์ที่ผสานจะมีCellMerge.First
- เซลล์ที่ผสานในภายหลังจะมีCellMerge.Previous
- เซลล์ที่ไม่รวมจะมีCellMerge.None
การตรวจสอบว่ามีการรวมเซลล์หรือไม่
หากต้องการตรวจสอบว่าเซลล์เป็นส่วนหนึ่งของลำดับของเซลล์ที่ผสาน,เราเพียงแค่ตรวจสอบ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
วิธีนี้เพียงแค่แปลงตารางและเพิ่มเซลล์ใหม่ตามความจำเป็น.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการข้างต้นในการดำเนินงาน: