این مقاله روشهای مختلفی را برای یافتن و جایگزینی متن در اسناد Word با استفاده از C# در برنامههای NET یا NET Core پوشش میدهد.
Find and Replace یک ویژگی کاملا مفید MS Word برای مکان یابی سریع و جایگزینی متن مورد نظر در اسناد است. وقتی با اسناد طولانیتری کار میکنید، این کار راحتتر و صرفهجویی در زمان میشود. در مواردی که نیاز به یافتن و جایگزینی متن در صدها سند Word دارید یا نیاز به خودکارسازی این فرآیند دارید، قطعاً این کار را به صورت برنامهریزی انجام خواهید داد. بنابراین در این مقاله به شما نشان خواهم داد که چگونه می توانید متن در اسناد Word را به صورت برنامه نویسی در سناریوهای مختلف با استفاده از C# پیدا و جایگزین کنید. پس از خواندن این مقاله، قادر خواهید بود:
- یافتن و جایگزینی متن در Word DOC/DOCX با استفاده از C#
- کلمات مشابه را در سند Word پیدا و جایگزین کنید
- متن را با استفاده از Regex پیدا و جایگزین کنید
- متن را در سرصفحه/پانویس سند Word پیدا و جایگزین کنید
- یافتن و جایگزینی متن با متا کاراکترها در سند Word
کتابخانه سی شارپ برای یافتن و جایگزینی متن در یک سند Word
اول از همه، یک پروژه C# جدید (کنسول، ASP.NET و غیره) در ویژوال استودیو ایجاد کنید و Aspose.Words برای دات نت را از طریق NuGet Package Manager یا Package Manager Console نصب کنید.
نصب از طریق NuGet Package Manager
نصب از طریق Package Manager Console
PM> Install-Package Aspose.Words
پس از اینکه Aspose.Words را برای دات نت نصب کردیم، اکنون شروع به یافتن و جایگزینی متن در سند Word زیر می کنیم.
یافتن و جایگزینی متن در اسناد Word در سی شارپ
مراحل زیر برای یافتن و جایگزینی یک متن خاص در یک سند Word با استفاده از Aspose.Words برای دات نت آمده است.
- یک نمونه از کلاس 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 با استفاده از سی شارپ
همچنین می توانید 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");
خروجی
یافتن و جایگزینی متن با استفاده از 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 با استفاده از سی شارپ
ممکن است سناریویی وجود داشته باشد که در آن یک متن یا عبارت خاص از چندین پاراگراف، بخش یا صفحه تشکیل شده باشد. در چنین مواردی، روش ساده یافتن و جایگزینی به طور موثر کار نمی کند و ما مجبور خواهیم بود که شکستن پاراگراف ها، بخش ها یا شکستگی های صفحه را مدیریت کنیم. برای این منظور، 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 صرفهجویی میکنند. می توانید با استفاده از مستندات درباره کتابخانه ورد Aspose اطلاعات بیشتری کسب کنید.
مقالات مرتبط)
- یافتن و جایگزینی متن در اسناد Word با استفاده از جاوا
- .NET Word Automation - ایجاد اسناد ورد غنی در سی شارپ
نکته: ممکن است به یک تبدیل متن به GIF رایگان علاقه داشته باشید که به شما امکان می دهد انیمیشن ها را از متون تولید کنید.