Tento článek popisuje různé přístupy k vyhledání a nahrazení textu v dokumentech aplikace Word pomocí jazyka C# v aplikacích .NET nebo .NET Core.

Najít a nahradit je docela užitečná funkce MS Word pro rychlé vyhledání a nahrazení požadovaného textu v dokumentech. Při práci s delšími dokumenty se stává praktičtější a šetří čas. V případech, kdy potřebujete najít a nahradit text ve stovkách dokumentů aplikace Word nebo potřebujete tento proces zautomatizovat, rozhodně se rozhodnete to udělat programově. V tomto článku vám tedy ukážu, jak najít a nahradit text v dokumentech Wordu programově v různých scénářích pomocí C#. Jakmile si přečtete tento článek, budete moci:

Knihovna C# pro vyhledání a nahrazení textu v dokumentu aplikace Word

Nejprve vytvořte nový projekt C# (Console, ASP.NET atd.) ve Visual Studiu a nainstalujte Apose.Words for .NET přes NuGet Package Manager nebo Package Manager Console.

Instalace přes NuGet Package Manager

Vyhledání a nahrazení textu ve Word DOC

Instalace pomocí konzoly Správce balíčků

PM> Install-Package Aspose.Words

Poté, co jsme nainstalovali Aspose.Words for .NET, začněme nyní hledat a nahrazovat text v následujícím dokumentu aplikace Word.

c# najít a nahradit text v dokumentu aplikace Word

Najít a nahradit text v dokumentech aplikace Word v C#

Následují kroky k vyhledání a nahrazení určitého textu v dokumentu aplikace Word pomocí Aspose.Words for .NET.

Třída FindReplaceOptions poskytuje různé možnosti přizpůsobení operací hledání/nahrazení. Následující ukázka kódu ukazuje, jak najít a nahradit konkrétní slovo nebo řetězec v dokumentu aplikace Word pomocí jazyka C#.

// Načtěte dokument docx aplikace Word
Document doc = new Document("document.docx");
// Najít a nahradit text v dokumentu
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Uložte dokument aplikace Word
doc.Save("Find-And-Replace-Text.docx");

Výstup

najít text v dokumentu aplikace Word pomocí c#

Najít a nahradit podobná slova v dokumentech aplikace Word pomocí C#

Rozhraní API můžete také přizpůsobit tak, aby našlo podobná slova a nahradilo je konkrétním slovem. Můžete například najít slova „smutný“ a „šílený“ a nahradit je jedním slovem. Následující ukázka kódu ukazuje, jak najít a nahradit podobná slova v dokumentu Word pomocí C#.

// Načtěte dokument docx aplikace Word
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// Najít a nahradit text v dokumentu
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Uložte dokument aplikace Word
doc.Save("Find-And-Replace-Multiple-Words.docx");

Výstup

c# nahradit text v souboru docx

Najít a nahradit text pomocí Regex v C#

Může nastat případ, kdy chcete najít a nahradit text, který se objevuje v určitém vzoru. Například potřebujete skrýt/nahradit všechna e-mailová ID v dokumentu aplikace Word. V takových případech můžete vytvořit regulární výraz pro e-mailová ID a předat jej metodě Document.Range.Replace(Regex, string, FindReplaceOptions).

Následující ukázka kódu ukazuje, jak najít a nahradit text na základě vzoru v dokumentu aplikace Word.

// Načtěte dokument docx aplikace Word
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// Nastavte regulární výraz pro e-mailová ID 
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])?");
// Najít a nahradit text v dokumentu
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Uložte dokument aplikace Word
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

Výstup

jak nahradit text v dokumentu aplikace word

Můžete také najít a nahradit text v záhlaví nebo zápatí dokumentu aplikace Word pomocí třídy HeaderFooter. K tomuto účelu slouží metoda HeaderFooter.Range.Replace(string, string, FindReplaceOptions). Následující ukázka kódu ukazuje, jak nahradit text v záhlaví/zápatí dokumentu aplikace Word v jazyce C#.

// Načtěte dokument aplikace Word
Document doc = new Document("document.docx");
// Přístup k záhlaví/zápatí dokumentu aplikace Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Nastavení možností
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Nahraďte text v zápatí dokumentu aplikace Word
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Uložte dokument aplikace Word
doc.Save("Find-And-Replace-Text-in-Footer.docx");

Výstup

Hledání a nahrazování textu ve Wordu v C#.NET

Najít a nahradit text metaznaky v dokumentech Word pomocí C#

Může nastat situace, kdy se konkrétní text nebo fráze skládá z více odstavců, oddílů nebo stránek. V takových případech by jednoduchá metoda hledání a nahrazení nefungovala efektivně a budeme muset zacházet s konce odstavců, oddílů nebo stránek. Za tímto účelem vám Aspose.Words umožňuje použít ve vyhledávacím řetězci nebo v náhradním řetězci následující metaznaky:

  • &p: konec odstavce
  • &b: konec sekce
  • &m: konec stránky
  • &l: zalomení řádku

Následující ukázka kódu ukazuje, jak najít a nahradit text zalomením odstavce v dokumentu aplikace Word.

// Načtěte dokument docx aplikace Word
Document doc = new Document("document.docx"); 
// Nastavení možností 
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Nahraďte text zalomením odstavce
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Uložte dokument aplikace Word
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

Výstup

najít a nahradit text pomocí regulárního výrazu C#

Závěr

Tento článek popisuje některé užitečné způsoby, jak programově najít a nahradit text v dokumentu aplikace Word na základě shodných nebo podobných slov, frází a vzorců regulárních výrazů. Tyto funkce nejen automatizují proces nahrazování textu, ale ušetří vám spoustu času a úsilí potřebného při ručním vyhledávání a nahrazování v dokumentech aplikace Word. Můžete se dozvědět více o Aspose’s Word Library pomocí dokumentace.

Související články

Tip: Možná vás bude zajímat bezplatný Text to GIF Converter, který vám umožní generovat animace z textů.