บทความนี้ครอบคลุมแนวทางต่างๆ ในการค้นหาและแทนที่ข้อความในเอกสาร Word โดยใช้ C# ในแอปพลิเคชัน .NET หรือ .NET Core
ค้นหาและแทนที่เป็นคุณสมบัติที่มีประโยชน์ของ MS Word เพื่อค้นหาและแทนที่ข้อความที่ต้องการในเอกสารได้อย่างรวดเร็ว มันจะมีประโยชน์มากขึ้นและประหยัดเวลาเมื่อคุณทำงานกับเอกสารที่ยาวขึ้น ในกรณีที่คุณต้องการค้นหาและแทนที่ข้อความในเอกสาร Word หลายร้อยรายการ หรือคุณต้องการทำให้กระบวนการนี้ทำงานโดยอัตโนมัติ คุณจะเลือกทำแบบเป็นโปรแกรมได้อย่างแน่นอน ดังนั้นในบทความนี้ ฉันจะแสดงวิธีค้นหาและแทนที่ข้อความในเอกสาร Word โดยทางโปรแกรมในสถานการณ์ต่างๆ โดยใช้ C# เมื่อคุณได้อ่านบทความนี้แล้ว คุณจะสามารถ:
- ค้นหาและแทนที่ข้อความใน Word DOC/DOCX โดยใช้ C#
- ค้นหาและแทนที่คำที่คล้ายกันในเอกสาร Word
- ค้นหาและแทนที่ข้อความโดยใช้ Regex
- ค้นหาและแทนที่ข้อความในส่วนหัว/ส่วนท้ายของเอกสาร Word
- ค้นหาและแทนที่ข้อความด้วยอักขระเมตาในเอกสาร Word
ไลบรารี C# เพื่อค้นหาและแทนที่ข้อความในเอกสาร Word
ก่อนอื่น สร้างโปรเจ็กต์ C# ใหม่ (Console, ASP.NET และอื่นๆ) ใน Visual Studio และติดตั้ง Aspose.Words for .NET ผ่าน NuGet Package Manager หรือ Package Manager Console
การติดตั้งผ่าน NuGet Package Manager
การติดตั้งผ่าน Package Manager Console
PM> Install-Package Aspose.Words
หลังจากที่เราติดตั้ง Aspose.Words สำหรับ .NET แล้ว เรามาเริ่มค้นหาและแทนที่ข้อความในเอกสาร Word ต่อไปนี้
ค้นหาและแทนที่ข้อความในเอกสาร Word ใน C#
ต่อไปนี้คือขั้นตอนในการค้นหาและแทนที่ข้อความเฉพาะในเอกสาร Word โดยใช้ Aspose.Words สำหรับ .NET
- สร้างอินสแตนซ์ของคลาส Document และเริ่มต้นด้วยเส้นทางของเอกสาร Word
- ค้นหาและแทนที่ข้อความโดยใช้เมธอด Document.Range.Replace(string, string, FindReplaceOptions)
- บันทึกเอกสารโดยใช้เมธอด Document.Save(string)
คลาส FindReplaceOptions มีตัวเลือกต่างๆ เพื่อปรับแต่งการดำเนินการค้นหา/แทนที่ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและแทนที่คำหรือสตริงเฉพาะในเอกสาร Word โดยใช้ C#
// โหลดเอกสาร Word docx
Document doc = new Document("document.docx");
// ค้นหาและแทนที่ข้อความในเอกสาร
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// บันทึกเอกสาร Word
doc.Save("Find-And-Replace-Text.docx");
เอาต์พุต
ค้นหาและแทนที่คำที่คล้ายกันในเอกสาร Word โดยใช้ C#
คุณยังสามารถปรับแต่ง API เพื่อค้นหาคำที่คล้ายกันและแทนที่ด้วยคำเฉพาะ ตัวอย่างเช่น คุณสามารถค้นหาคำว่า “sad” และ “mad” และแทนที่ด้วยคำเดียว ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่คำที่คล้ายกันในเอกสาร Word โดยใช้ C#
// โหลดเอกสาร Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true;
// ค้นหาและแทนที่ข้อความในเอกสาร
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// บันทึกเอกสาร Word
doc.Save("Find-And-Replace-Multiple-Words.docx");
เอาต์พุต
ค้นหาและแทนที่ข้อความโดยใช้ Regex ใน C#
อาจมีกรณีที่คุณต้องการค้นหาและแทนที่ข้อความที่ปรากฏในรูปแบบเฉพาะ ตัวอย่างเช่น คุณต้องซ่อน/แทนที่รหัสอีเมลทั้งหมดในเอกสาร Word ในกรณีเช่นนี้ คุณสามารถสร้างนิพจน์ทั่วไปสำหรับรหัสอีเมลและส่งต่อไปยังเมธอด Document.Range.Replace(Regex, string, FindReplaceOptions)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่ข้อความตามรูปแบบในเอกสาร Word
// โหลดเอกสาร Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true;
// ตั้งค่านิพจน์ทั่วไปสำหรับรหัสอีเมล
Regex EmailRegex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
// ค้นหาและแทนที่ข้อความในเอกสาร
doc.Range.Replace(EmailRegex, "[replaced]", options);
// บันทึกเอกสาร Word
doc.Save("Find-And-Replace-Text-Using-Regex.docx");
เอาต์พุต
ค้นหาและแทนที่ข้อความในส่วนหัว/ส่วนท้ายของเอกสาร Word โดยใช้ C#
คุณยังสามารถค้นหาและแทนที่ข้อความในส่วนหัวหรือส่วนท้ายของเอกสาร Word โดยใช้คลาส HeaderFooter เมธอด HeaderFooter.Range.Replace(string, string, FindReplaceOptions) ใช้เพื่อจุดประสงค์นี้ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทนที่ข้อความในส่วนหัว/ส่วนท้ายของเอกสาร Word ใน C#
// โหลดเอกสาร Word
Document doc = new Document("document.docx");
// เข้าถึงส่วนหัว/ส่วนท้ายของเอกสาร Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// ตั้งค่าตัวเลือก
FindReplaceOptions options = new FindReplaceOptions
{
MatchCase = false,
FindWholeWordsOnly = false
};
// แทนที่ข้อความในส่วนท้ายของเอกสาร Word
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// บันทึกเอกสาร Word
doc.Save("Find-And-Replace-Text-in-Footer.docx");
เอาต์พุต
ค้นหาและแทนที่ข้อความด้วยอักขระ Meta ในเอกสาร Word โดยใช้ C#
อาจมีสถานการณ์ที่ข้อความหรือวลีหนึ่งๆ ประกอบด้วยย่อหน้า ส่วน หรือหน้าหลายหน้า ในกรณีเช่นนี้ วิธีค้นหาและแทนที่อย่างง่ายจะไม่ทำงานอย่างมีประสิทธิภาพ และเราจะต้องจัดการกับตัวแบ่งย่อหน้า ตัวแบ่งส่วน หรือตัวแบ่งหน้า สำหรับสิ่งนี้ Aspose.Words อนุญาตให้คุณใช้อักขระเมตาต่อไปนี้ในสตริงการค้นหาหรือสตริงการแทนที่:
- &p: ตัวแบ่งย่อหน้า
- &b: ตัวแบ่งส่วน
- &m: ตัวแบ่งหน้า
- &l: ตัวแบ่งบรรทัด
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่ข้อความด้วยตัวแบ่งย่อหน้าในเอกสาร Word
// โหลดเอกสาร Word docx
Document doc = new Document("document.docx");
// ตั้งค่าตัวเลือก
FindReplaceOptions options = new FindReplaceOptions
{
MatchCase = false,
FindWholeWordsOnly = false
};
// แทนที่ข้อความด้วยตัวแบ่งย่อหน้า
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// บันทึกเอกสาร Word
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");
เอาต์พุต
บทสรุป
บทความนี้ครอบคลุมวิธีที่เป็นประโยชน์บางประการในการค้นหาและแทนที่ข้อความในเอกสาร Word ตามคำ วลี และรูปแบบ regex ที่ตรงกันหรือคล้ายกันโดยทางโปรแกรม ฟีเจอร์เหล่านี้ไม่เพียงแต่ทำให้กระบวนการแทนที่ข้อความเป็นไปโดยอัตโนมัติเท่านั้น แต่ยังช่วยให้คุณประหยัดเวลาและความพยายามในการค้นหาและแทนที่ด้วยตนเองในเอกสาร Word ได้อีกด้วย คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับไลบรารี Word ของ Aspose โดยใช้ เอกสารประกอบ
บทความที่เกี่ยวข้อง)
เคล็ดลับ: คุณอาจสนใจ Text to GIF Converter ฟรีที่ให้คุณสร้างภาพเคลื่อนไหวจากข้อความ