บทความนี้ครอบคลุมแนวทางต่างๆ ในการค้นหาและแทนที่ข้อความในเอกสาร Word โดยใช้ C# ในแอปพลิเคชัน .NET หรือ .NET Core

ค้นหาและแทนที่เป็นคุณสมบัติที่มีประโยชน์ของ MS Word เพื่อค้นหาและแทนที่ข้อความที่ต้องการในเอกสารได้อย่างรวดเร็ว มันจะมีประโยชน์มากขึ้นและประหยัดเวลาเมื่อคุณทำงานกับเอกสารที่ยาวขึ้น ในกรณีที่คุณต้องการค้นหาและแทนที่ข้อความในเอกสาร Word หลายร้อยรายการ หรือคุณต้องการทำให้กระบวนการนี้ทำงานโดยอัตโนมัติ คุณจะเลือกทำแบบเป็นโปรแกรมได้อย่างแน่นอน ดังนั้นในบทความนี้ ฉันจะแสดงวิธีค้นหาและแทนที่ข้อความในเอกสาร Word โดยทางโปรแกรมในสถานการณ์ต่างๆ โดยใช้ C# เมื่อคุณได้อ่านบทความนี้แล้ว คุณจะสามารถ:

ไลบรารี C# เพื่อค้นหาและแทนที่ข้อความในเอกสาร Word

ก่อนอื่น สร้างโปรเจ็กต์ C# ใหม่ (Console, ASP.NET และอื่นๆ) ใน Visual Studio และติดตั้ง Aspose.Words for .NET ผ่าน NuGet Package Manager หรือ Package Manager Console

การติดตั้งผ่าน NuGet Package Manager

การค้นหาและแทนที่ข้อความใน Word DOC

การติดตั้งผ่าน Package Manager Console

PM> Install-Package Aspose.Words

หลังจากที่เราติดตั้ง Aspose.Words สำหรับ .NET แล้ว เรามาเริ่มค้นหาและแทนที่ข้อความในเอกสาร Word ต่อไปนี้

c# ค้นหาและแทนที่ข้อความในเอกสารคำ

ค้นหาและแทนที่ข้อความในเอกสาร Word ใน C#

ต่อไปนี้คือขั้นตอนในการค้นหาและแทนที่ข้อความเฉพาะในเอกสาร Word โดยใช้ Aspose.Words สำหรับ .NET

คลาส 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");

เอาต์พุต

ค้นหาข้อความในเอกสารคำโดยใช้ c#

ค้นหาและแทนที่คำที่คล้ายกันในเอกสาร 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");

เอาต์พุต

c# แทนที่ข้อความในไฟล์ 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

คุณยังสามารถค้นหาและแทนที่ข้อความในส่วนหัวหรือส่วนท้ายของเอกสาร 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");

เอาต์พุต

การค้นหาเอกสาร Word และการแทนที่ข้อความใน C#.NET

ค้นหาและแทนที่ข้อความด้วยอักขระ 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");

เอาต์พุต

ค้นหาและแทนที่ข้อความโดยใช้นิพจน์ทั่วไป C#

บทสรุป

บทความนี้ครอบคลุมวิธีที่เป็นประโยชน์บางประการในการค้นหาและแทนที่ข้อความในเอกสาร Word ตามคำ วลี และรูปแบบ regex ที่ตรงกันหรือคล้ายกันโดยทางโปรแกรม ฟีเจอร์เหล่านี้ไม่เพียงแต่ทำให้กระบวนการแทนที่ข้อความเป็นไปโดยอัตโนมัติเท่านั้น แต่ยังช่วยให้คุณประหยัดเวลาและความพยายามในการค้นหาและแทนที่ด้วยตนเองในเอกสาร Word ได้อีกด้วย คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับไลบรารี Word ของ Aspose โดยใช้ เอกสารประกอบ

บทความที่เกี่ยวข้อง)

เคล็ดลับ: คุณอาจสนใจ Text to GIF Converter ฟรีที่ให้คุณสร้างภาพเคลื่อนไหวจากข้อความ