این مقاله روش‌های مختلفی را برای یافتن و جایگزینی متن در اسناد Word با استفاده از C# در برنامه‌های NET یا NET Core پوشش می‌دهد.

Find and Replace یک ویژگی کاملا مفید MS Word برای مکان یابی سریع و جایگزینی متن مورد نظر در اسناد است. وقتی با اسناد طولانی‌تری کار می‌کنید، این کار راحت‌تر و صرفه‌جویی در زمان می‌شود. در مواردی که نیاز به یافتن و جایگزینی متن در صدها سند Word دارید یا نیاز به خودکارسازی این فرآیند دارید، قطعاً این کار را به صورت برنامه‌ریزی انجام خواهید داد. بنابراین در این مقاله به شما نشان خواهم داد که چگونه می توانید متن در اسناد Word را به صورت برنامه نویسی در سناریوهای مختلف با استفاده از C# پیدا و جایگزین کنید. پس از خواندن این مقاله، قادر خواهید بود:

کتابخانه سی شارپ برای یافتن و جایگزینی متن در یک سند Word

اول از همه، یک پروژه C# جدید (کنسول، ASP.NET و غیره) در ویژوال استودیو ایجاد کنید و Aspose.Words برای دات نت را از طریق NuGet Package Manager یا Package Manager Console نصب کنید.

نصب از طریق NuGet Package Manager

یافتن و جایگزینی متن در Word DOC

نصب از طریق Package Manager Console

PM> Install-Package Aspose.Words

پس از اینکه Aspose.Words را برای دات نت نصب کردیم، اکنون شروع به یافتن و جایگزینی متن در سند Word زیر می کنیم.

c# متن را در سند word پیدا و جایگزین کنید

یافتن و جایگزینی متن در اسناد Word در سی شارپ

مراحل زیر برای یافتن و جایگزینی یک متن خاص در یک سند Word با استفاده از Aspose.Words برای دات نت آمده است.

کلاس 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#

یافتن و جایگزینی کلمات مشابه در اسناد Word با استفاده از سی شارپ

همچنین می توانید API را سفارشی کنید تا کلمات مشابه را پیدا کرده و آنها را با یک کلمه خاص جایگزین کنید. به عنوان مثال، می توانید کلمات “غمگین” و “دیوانه” را پیدا کنید و آنها را با یک کلمه جایگزین کنید. نمونه کد زیر نحوه یافتن و جایگزینی کلمات مشابه در سند Word را با استفاده از سی شارپ نشان می دهد.

// یک سند 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 در سی شارپ

ممکن است موردی وجود داشته باشد که بخواهید متنی را که در یک الگوی خاص ظاهر می شود پیدا کرده و جایگزین کنید. به عنوان مثال، شما باید تمام شناسه های ایمیل را در یک سند 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

همچنین می‌توانید با استفاده از کلاس HeaderFooter متن را در قسمت‌های سرصفحه یا پاورقی یک سند Word پیدا کرده و جایگزین کنید. برای این منظور از روش HeaderFooter.Range.Replace (string, string, FindReplaceOptions) استفاده می شود. نمونه کد زیر نحوه جایگزینی متن در هدر/پانویس سند Word در سی شارپ را نشان می دهد.

// یک سند 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

یافتن و جایگزینی متن با متا کاراکترها در اسناد Word با استفاده از سی شارپ

ممکن است سناریویی وجود داشته باشد که در آن یک متن یا عبارت خاص از چندین پاراگراف، بخش یا صفحه تشکیل شده باشد. در چنین مواردی، روش ساده یافتن و جایگزینی به طور موثر کار نمی کند و ما مجبور خواهیم بود که شکستن پاراگراف ها، بخش ها یا شکستگی های صفحه را مدیریت کنیم. برای این منظور، 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 صرفه‌جویی می‌کنند. می توانید با استفاده از مستندات درباره کتابخانه ورد Aspose اطلاعات بیشتری کسب کنید.

مقالات مرتبط)

نکته: ممکن است به یک تبدیل متن به GIF رایگان علاقه داشته باشید که به شما امکان می دهد انیمیشن ها را از متون تولید کنید.