แก้ให้หายยุ่งในเอกสาร Word
ในบทความนี้ เราจะสำรวจซอร์สโค้ด C# ด้านบนเพื่อทำความเข้าใจวิธีใช้ฟังก์ชัน Untangle ในไลบรารี Aspose.Words สำหรับ .NET ฟังก์ชันนี้จะคลี่บุ๊กมาร์กที่ซ้อนกันซึ่งอยู่ในแถวตารางที่อยู่ติดกัน
ข้อกำหนดเบื้องต้น
- ความรู้พื้นฐานของภาษา C#
- สภาพแวดล้อมการพัฒนา .NET ที่ติดตั้งไลบรารี Aspose.Words
ขั้นตอนที่ 1: เรียกดูบุ๊กมาร์กเอกสาร
เราใช้ foreach loop เพื่อวนซ้ำบุ๊กมาร์กทั้งหมดที่มีอยู่ในเอกสาร:
foreach(Bookmark bookmark in doc.Range.Bookmarks)
{
// รหัสสำหรับจัดการบุ๊กมาร์กที่นี่
}
ขั้นตอนที่ 2: รับแถวพาเรนต์จากบุ๊กมาร์ก
เราใช้GetAncestor
วิธีการดึงข้อมูลแถวพาเรนต์ของโหนดเริ่มต้นและจุดสิ้นสุดของบุ๊กมาร์ก:
Row row1 = (Row)bookmark.BookmarkStart.GetAncestor(typeof(Row));
Row row2 = (Row)bookmark.BookmarkEnd.GetAncestor(typeof(Row));
ขั้นตอนที่ 3: แก้ให้หายยุ่งที่คั่นหน้าซ้อนกัน
หากพบทั้งสองบรรทัดหลักและบุ๊กมาร์กเริ่มต้นและสิ้นสุดในบรรทัดที่อยู่ติดกัน เราจะย้ายโหนดสิ้นสุดของบุ๊กมาร์กไปที่จุดสิ้นสุดของย่อหน้าสุดท้ายของเซลล์สุดท้ายในแถวบนสุด:
if (row1 != null && row2 != null && row1.NextSibling == row2)
row1.LastCell.LastParagraph.AppendChild(bookmark.BookmarkEnd);
ตัวอย่างซอร์สโค้ดสำหรับแก้ให้หายยุ่งโดยใช้ Aspose.Words สำหรับ .NET
นี่คือตัวอย่างซอร์สโค้ดแบบเต็มสำหรับการแกะบุ๊กมาร์กที่ซ้อนกันโดยใช้ Aspose.Words สำหรับ .NET:
foreach (Bookmark bookmark in doc.Range.Bookmarks)
{
// รับแถวพาเรนต์ของทั้งบุ๊กมาร์กและโหนดสิ้นสุดบุ๊กมาร์ก
Row row1 = (Row) bookmark.BookmarkStart.GetAncestor(typeof(Row));
Row row2 = (Row) bookmark.BookmarkEnd.GetAncestor(typeof(Row));
// หากพบว่าทั้งสองแถวไม่เป็นไร และบุ๊กมาร์กเริ่มต้นและสิ้นสุดอยู่ในแถวที่อยู่ติดกัน
// ย้ายโหนดสิ้นสุดบุ๊กมาร์กไปยังจุดสิ้นสุดของย่อหน้าสุดท้ายในเซลล์สุดท้ายของแถวบนสุด
if (row1 != null && row2 != null && row1.NextSibling == row2)
row1.LastCell.LastParagraph.AppendChild(bookmark.BookmarkEnd);
}
บทสรุป
ในบทความนี้ เราได้สำรวจซอร์สโค้ด C# เพื่อทำความเข้าใจวิธีใช้ฟังก์ชัน Untangle ของ Aspose.Words สำหรับ .NET เราได้ปฏิบัติตามคำแนะนำทีละขั้นตอนเพื่อแก้ปัญหาบุ๊กมาร์กที่ซ้อนกันในแถวตารางที่อยู่ติดกัน
คำถามที่พบบ่อย
ถาม: ฟังก์ชัน Untangle ใช้งานได้เฉพาะกับบุ๊กมาร์กที่ซ้อนกันในแถวตารางที่อยู่ติดกันหรือไม่
ตอบ: ได้ คุณสมบัติแก้ให้หายยุ่งได้รับการออกแบบมาโดยเฉพาะเพื่อแก้ให้หายยุ่งบุ๊กมาร์กที่ซ้อนกันซึ่งอยู่ในแถวตารางที่อยู่ติดกัน หากบุ๊กมาร์กไม่อยู่ในบรรทัดที่อยู่ติดกัน ฟังก์ชันนี้จะใช้งานไม่ได้
ถาม: ฉันจะระบุบุ๊กมาร์กที่ซ้อนกันในเอกสาร Word ได้อย่างไร
ตอบ: คุณสามารถระบุบุ๊กมาร์กที่ซ้อนกันได้โดยการวนซ้ำบุ๊กมาร์กในเอกสาร และตรวจสอบเพื่อดูว่าบุ๊กมาร์กเริ่มต้นและบุ๊กมาร์กสิ้นสุดอยู่ในแถวของตารางที่อยู่ติดกันหรือไม่ คุณสามารถใช้ซอร์สโค้ดที่ให้ไว้ในบทความนี้เป็นจุดเริ่มต้นในการใช้งานฟังก์ชันนี้
ถาม: ฟังก์ชัน Unscramble จะแก้ไขเนื้อหาของเอกสารต้นฉบับหรือไม่
ตอบ: ได้ ฟังก์ชัน Untangle จะแก้ไขเอกสารต้นฉบับโดยการย้ายโหนดสิ้นสุดของบุ๊กมาร์กไปที่จุดสิ้นสุดของย่อหน้าสุดท้ายของเซลล์สุดท้ายในแถวบนสุด ตรวจสอบให้แน่ใจว่าได้บันทึกสำเนาสำรองของเอกสารก่อนที่จะใช้คุณสมบัตินี้
ถาม: ฉันจะแยกบุ๊กมาร์กที่ซ้อนกันในองค์ประกอบเอกสารประเภทอื่นๆ เช่น ส่วนหรือย่อหน้าออกได้อย่างไร
ตอบ: ฟังก์ชัน Untangle ที่นำเสนอในบทความนี้ได้รับการออกแบบมาโดยเฉพาะเพื่อแก้ให้หายยุ่งบุ๊กมาร์กที่ซ้อนกันในแถวตารางที่อยู่ติดกัน หากคุณต้องการแยกบุ๊กมาร์กที่ซ้อนกันในองค์ประกอบเอกสารอื่นๆ คุณจะต้องปรับโค้ดให้เหมาะสมและใช้วิธีการที่เหมาะสมเพื่อเข้าถึงองค์ประกอบที่ต้องการ
ถาม: มีวิธีอื่นใดในการแก้ให้หายยุ่งบุ๊กมาร์กที่ซ้อนกันในเอกสาร Word โดยใช้ Aspose.Words สำหรับ .NET หรือไม่
ตอบ: วิธีการที่นำเสนอในบทความนี้เป็นวิธีการทั่วไปในการคลี่บุ๊กมาร์กที่ซ้อนกันในแถวตารางที่อยู่ติดกัน อย่างไรก็ตาม อาจมีแนวทางหรือเทคนิคอื่นๆ ขึ้นอยู่กับความต้องการเฉพาะของโครงการของคุณ คุณสามารถตรวจสอบได้ที่Aspose.Words สำหรับการอ้างอิง .NET API เพื่อสำรวจคุณสมบัติที่มีอยู่เพิ่มเติม