คัดลอกข้อความที่คั่นหน้าในเอกสาร Word
การแนะนำ
คุณเคยพบว่าคุณต้องคัดลอกส่วนต่างๆ จากเอกสาร Word หนึ่งไปยังอีกเอกสารหนึ่งหรือไม่? ถือว่าคุณโชคดี! ในบทช่วยสอนนี้ เราจะแนะนำคุณเกี่ยวกับวิธีการคัดลอกข้อความที่คั่นหน้าจากเอกสาร Word หนึ่งไปยังอีกเอกสารหนึ่งโดยใช้ Aspose.Words สำหรับ .NET ไม่ว่าคุณจะกำลังสร้างรายงานแบบไดนามิกหรือสร้างเอกสารโดยอัตโนมัติ คู่มือนี้จะทำให้กระบวนการนี้ง่ายขึ้นสำหรับคุณ
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเจาะลึก ให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
- Aspose.Words สำหรับไลบรารี .NET: คุณสามารถดาวน์โหลดได้จากที่นี่.
- สภาพแวดล้อมการพัฒนา: Visual Studio หรือสภาพแวดล้อมการพัฒนา .NET อื่น ๆ
- ความรู้พื้นฐานเกี่ยวกับ C#: ความคุ้นเคยกับการเขียนโปรแกรม C# และ .NET framework
นำเข้าเนมสเปซ
ในการเริ่มต้น ให้แน่ใจว่าคุณได้นำเนมสเปซที่จำเป็นเข้ามาในโครงการของคุณแล้ว:
using Aspose.Words;
using Aspose.Words.Import;
using Aspose.Words.Bookmark;
ขั้นตอนที่ 1: โหลดเอกสารต้นฉบับ
สิ่งแรกที่ต้องทำคือคุณต้องโหลดเอกสารต้นฉบับซึ่งมีข้อความที่คั่นหน้าไว้ซึ่งคุณต้องการคัดลอก
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document srcDoc = new Document(dataDir + "Bookmarks.docx");
ที่นี่,dataDir
เป็นเส้นทางไปยังไดเรกทอรีเอกสารของคุณและBookmarks.docx
เป็นเอกสารต้นฉบับ
ขั้นตอนที่ 2: ระบุบุ๊กมาร์ก
ขั้นต่อไป ให้ระบุบุ๊กมาร์กที่คุณต้องการคัดลอกจากเอกสารต้นฉบับ
Bookmark srcBookmark = srcDoc.Range.Bookmarks["MyBookmark1"];
แทนที่"MyBookmark1"
ด้วยชื่อจริงของบุ๊กมาร์กของคุณ
ขั้นตอนที่ 3: สร้างเอกสารปลายทาง
ตอนนี้ให้สร้างเอกสารใหม่ที่ข้อความที่คั่นหน้าจะถูกคัดลอก
Document dstDoc = new Document();
CompositeNode dstNode = dstDoc.LastSection.Body;
ขั้นตอนที่ 4: นำเข้าเนื้อหาที่คั่นหน้าไว้
เพื่อให้แน่ใจว่ารูปแบบและการจัดรูปแบบได้รับการรักษาไว้ ให้ใช้NodeImporter
เพื่อนำเข้าเนื้อหาที่คั่นหน้าไว้จากเอกสารต้นฉบับไปยังเอกสารปลายทาง
NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);
AppendBookmarkedText(importer, srcBookmark, dstNode);
ขั้นตอนที่ 5: กำหนดวิธีการ AppendBookmarkedText
นี่คือจุดที่เวทมนตร์เกิดขึ้น กำหนดวิธีการจัดการการคัดลอกข้อความที่คั่นหน้าไว้:
private void AppendBookmarkedText(NodeImporter importer, Bookmark srcBookmark, CompositeNode dstNode)
{
Paragraph startPara = (Paragraph)srcBookmark.BookmarkStart.ParentNode;
Paragraph endPara = (Paragraph)srcBookmark.BookmarkEnd.ParentNode;
if (startPara == null || endPara == null)
throw new InvalidOperationException("Parent of the bookmark start or end is not a paragraph, cannot handle this scenario yet.");
if (startPara.ParentNode != endPara.ParentNode)
throw new InvalidOperationException("Start and end paragraphs have different parents, cannot handle this scenario yet.");
Node endNode = endPara.NextSibling;
for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
{
Node newNode = importer.ImportNode(curNode, true);
dstNode.AppendChild(newNode);
}
}
ขั้นตอนที่ 6: บันทึกเอกสารปลายทาง
สุดท้ายให้บันทึกเอกสารปลายทางเพื่อตรวจสอบเนื้อหาที่คัดลอก
dstDoc.Save(dataDir + "WorkingWithBookmarks.CopyBookmarkedText.docx");
บทสรุป
เพียงเท่านี้ คุณก็คัดลอกข้อความที่คั่นหน้าจากเอกสาร Word หนึ่งไปยังอีกเอกสารหนึ่งได้สำเร็จโดยใช้ Aspose.Words สำหรับ .NET วิธีนี้มีประสิทธิภาพในการทำให้กระบวนการจัดการเอกสารเป็นแบบอัตโนมัติ ทำให้เวิร์กโฟลว์ของคุณมีประสิทธิภาพและคล่องตัวมากขึ้น
คำถามที่พบบ่อย
ฉันสามารถคัดลอกบุ๊กมาร์กหลายอันพร้อมกันได้ไหม
ใช่ คุณสามารถทำซ้ำผ่านบุ๊กมาร์กหลาย ๆ อันและใช้วิธีการเดียวกันในการคัดลอกแต่ละอัน
ถ้าไม่พบบุ๊กมาร์กจะเกิดอะไรขึ้น?
การRange.Bookmarks
ทรัพย์สินจะกลับมาnull
ดังนั้นคุณต้องแน่ใจว่าคุณจัดการกรณีนี้เพื่อหลีกเลี่ยงข้อยกเว้น
ฉันสามารถรักษาการจัดรูปแบบของบุ๊กมาร์กต้นฉบับได้หรือไม่
แน่นอน! ใช้ImportFormatMode.KeepSourceFormatting
ทำให้แน่ใจว่ารูปแบบดั้งเดิมนั้นได้รับการรักษาไว้
ขนาดของข้อความที่คั่นหน้ามีจำกัดหรือไม่
ไม่มีข้อจำกัดที่เฉพาะเจาะจง แต่ประสิทธิภาพอาจแตกต่างกันไปขึ้นอยู่กับเอกสารที่มีขนาดใหญ่เป็นอย่างมาก
ฉันสามารถคัดลอกข้อความระหว่างรูปแบบเอกสาร Word ที่แตกต่างกันได้หรือไม่
ใช่ Aspose.Words รองรับรูปแบบ Word มากมาย และวิธีการนี้สามารถใช้ได้กับรูปแบบเหล่านี้