แก้ให้หายยุ่งที่คั่นหน้าแถวในเอกสาร Word

ในบทความนี้ เราจะสำรวจซอร์สโค้ด C# ด้านบนเพื่อทำความเข้าใจวิธีใช้ฟังก์ชัน Untangle Row Bookmarks ในไลบรารี Aspose.Words สำหรับ .NET ฟังก์ชั่นนี้ทำให้สามารถวางจุดสิ้นสุดของบุ๊กมาร์กของบรรทัดในบรรทัดเดียวกับจุดเริ่มต้นของบุ๊กมาร์กได้

ข้อกำหนดเบื้องต้น

  • ความรู้พื้นฐานของภาษา C#
  • สภาพแวดล้อมการพัฒนา .NET ที่ติดตั้งไลบรารี Aspose.Words

ขั้นตอนที่ 1: กำลังโหลดเอกสาร

เราใช้Document คลาสเพื่อโหลดเอกสารที่มีอยู่จากไฟล์:

string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document(dataDir + "Table column bookmarks.docx");

ขั้นตอนที่ 2: คลี่คลายบุ๊กมาร์กบรรทัด

เราใช้Untangle ฟังก์ชั่นเพื่อแก้ให้หายยุ่งบุ๊กมาร์กจากแถว ฟังก์ชันนี้ดำเนินการแบบกำหนดเองโดยวางจุดสิ้นสุดของบรรทัดที่คั่นหน้าไว้ในบรรทัดเดียวกับที่คั่นหน้าเริ่มต้น:

Untangle(doc);

ขั้นตอนที่ 3: ลบบรรทัดด้วยบุ๊กมาร์ก

เราใช้DeleteRowByBookmark ฟังก์ชั่นเพื่อลบแถวเฉพาะตามบุ๊กมาร์ก:

DeleteRowByBookmark(doc, "ROW2");

ขั้นตอนที่ 4: ตรวจสอบความสมบูรณ์ของบุ๊กมาร์กอื่นๆ

เราตรวจสอบว่าบุ๊กมาร์กอื่นๆ ไม่ได้รับความเสียหายโดยการตรวจสอบว่าส่วนท้ายของบุ๊กมาร์กยังคงอยู่หรือไม่:

if (doc.Range.Bookmarks["ROW1"].BookmarkEnd == null)
throw new Exception("Wrong, the end of the bookmark was deleted.");

doc.Save(dataDir + "WorkingWithBookmarks.UntangleRowBookmarks.docx");

ตัวอย่างซอร์สโค้ดสำหรับแก้ให้หายยุ่งแถวบุ๊กมาร์กโดยใช้ Aspose.Words สำหรับ .NET

นี่คือตัวอย่างซอร์สโค้ดแบบเต็มเพื่อแก้บุ๊กมาร์กจากบรรทัดโดยใช้ Aspose.Words สำหรับ .NET:


	// เส้นทางไปยังไดเร็กทอรีเอกสาร
	string dataDir = "YOUR DOCUMENT DIRECTORY";
	Document doc = new Document(dataDir + "Table column bookmarks.docx");

	//การดำเนินการนี้จะดำเนินการแบบกำหนดเองโดยการวางบุ๊กมาร์กแถวสิ้นสุดในแถวเดียวกันกับที่บุ๊กมาร์กเริ่มต้น
	Untangle(doc);

	// ตอนนี้เราสามารถลบแถวด้วยบุ๊กมาร์กได้อย่างง่ายดาย โดยไม่ทำลายบุ๊กมาร์กของแถวอื่น
	DeleteRowByBookmark(doc, "ROW2");

	// นี่เป็นเพียงการตรวจสอบว่าบุ๊กมาร์กอื่นไม่เสียหาย
	if (doc.Range.Bookmarks["ROW1"].BookmarkEnd == null)
		throw new Exception("Wrong, the end of the bookmark was deleted.");

	doc.Save(dataDir + "WorkingWithBookmarks.UntangleRowBookmarks.docx");

แก้ให้หายยุ่งรหัสที่มา


private void Untangle(Document doc)
        {
            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);
            }
        }

ซอร์สโค้ด DeleteRowByBookmark


 private void DeleteRowByBookmark(Document doc, string bookmarkName)
        {
            Bookmark bookmark = doc.Range.Bookmarks[bookmarkName];

            Row row = (Row) bookmark?.BookmarkStart.GetAncestor(typeof(Row));
            row?.Remove();
        }

บทสรุป

ในบทความนี้ เราได้สำรวจซอร์สโค้ด C# เพื่อทำความเข้าใจวิธีใช้ฟีเจอร์ Untangle Row Bookmarks ของ Aspose.Words สำหรับ .NET เราทำตามคำแนะนำทีละขั้นตอนเพื่อแก้ให้หายยุ่งบุ๊กมาร์กแถวและลบแถวใดแถวหนึ่งโดยไม่ทำให้บุ๊กมาร์กอื่นเสียหาย

คำถามที่พบบ่อยสำหรับการแก้ให้หายยุ่งบุ๊กมาร์กแถวในเอกสารคำ

ถาม: Unscramble Row Bookmarks ใช้งานได้กับบุ๊กมาร์กแถวในตารางเท่านั้นหรือไม่

ตอบ: ได้ คุณลักษณะ Untangle Row Bookmarks ได้รับการออกแบบมาโดยเฉพาะเพื่อแก้ให้หายยุ่งที่คั่นหน้าแถวที่อยู่ในตาราง ฟังก์ชันนี้สามารถใช้เพื่อประมวลผลบุ๊กมาร์กบรรทัดในอาร์เรย์ และตรวจสอบให้แน่ใจว่าจุดสิ้นสุดของบุ๊กมาร์กอยู่ในบรรทัดเดียวกับที่บุ๊กมาร์กเริ่มต้น

ถาม: ฟังก์ชัน Unscramble Line Bookmarks แก้ไขเนื้อหาของเอกสารต้นฉบับหรือไม่

ตอบ: ได้ ฟังก์ชันบุ๊กมาร์กบรรทัด Unscramble จะแก้ไขเอกสารต้นฉบับโดยการย้ายส่วนท้ายของบุ๊กมาร์กบรรทัดเพื่อวางไว้ในบรรทัดเดียวกับจุดเริ่มต้นของบุ๊กมาร์ก ตรวจสอบให้แน่ใจว่าได้บันทึกสำเนาสำรองของเอกสารก่อนที่จะใช้คุณสมบัตินี้

ถาม: ฉันจะระบุบุ๊กมาร์กบรรทัดในเอกสาร Word ได้อย่างไร

ตอบ: โดยทั่วไปแล้ว บุ๊กมาร์กแถวจะใช้ในตารางเพื่อทำเครื่องหมายส่วนเฉพาะ คุณสามารถระบุที่คั่นหน้าแถวได้โดยการเรียกดูผ่านที่คั่นหน้าในเอกสาร และตรวจสอบเพื่อดูว่าที่คั่นหน้าอยู่ในแถวของตารางหรือไม่

ถาม: เป็นไปได้ไหมที่จะแก้การพันกันของบุ๊กมาร์กแถวในตารางที่ไม่อยู่ติดกัน

ตอบ: ฟังก์ชัน Untangle Row Bookmarks ดังที่นำเสนอในบทความนี้ ได้รับการออกแบบมาเพื่อแก้ให้หายยุ่งที่คั่นหน้าแถวในตารางที่อยู่ติดกัน หากต้องการแยกบุ๊กมาร์กแถวในตารางที่ไม่อยู่ติดกัน อาจจำเป็นต้องมีการปรับเปลี่ยนโค้ดเพิ่มเติม ทั้งนี้ขึ้นอยู่กับโครงสร้างของเอกสาร

ถาม: ฉันสามารถดำเนินการอื่นใดกับบุ๊กมาร์กแถวได้เมื่อคลี่คลายแล้ว

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