Den här artikeln tar upp olika metoder för att hitta och ersätta text i Word-dokument med C# i .NET- eller .NET Core-program.

Sök och ersätt är en ganska användbar funktion i MS Word för att snabbt hitta och ersätta önskad text i dokumenten. Det blir mer praktiskt och tidsbesparande när du arbetar med längre dokument. I de fall du behöver hitta och ersätta text i hundratals Word-dokument eller du behöver automatisera denna process, kommer du definitivt att välja att göra det programmatiskt. Så i den här artikeln ska jag visa dig hur du hittar och ersätter text i Word-dokument programmatiskt i olika scenarier med C#. När du har läst den här artikeln kommer du att kunna:

C#-bibliotek för att hitta och ersätta text i ett Word-dokument

Först och främst, skapa ett nytt C#-projekt (Console, ASP.NET, etc.) i Visual Studio och installera Aspose.Words for .NET via NuGet Package Manager eller Package Manager Console.

Installerar via NuGet Package Manager

Hitta och ersätta text i Word DOC

Installerar via Package Manager Console

PM> Install-Package Aspose.Words

Efter att vi har installerat Aspose.Words för .NET, låt oss nu börja hitta och ersätta text i följande Word-dokument.

c# hitta och ersätt text i word-dokument

Hitta och ersätt text i Word-dokument i C#

Följande är stegen för att hitta och ersätta en viss text i ett Word-dokument med Aspose.Words för .NET.

Klassen FindReplaceOptions tillhandahåller olika alternativ för att anpassa sök-/ersätt-operationerna. Följande kodexempel visar hur du hittar och ersätter ett visst ord eller en viss sträng i ett Word-dokument med C#.

// Ladda ett Word docx-dokument
Document doc = new Document("document.docx");
// Hitta och ersätt text i dokumentet
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Spara Word-dokumentet
doc.Save("Find-And-Replace-Text.docx");

Produktion

hitta text i word-dokument med c#

Hitta och ersätt liknande ord i Word-dokument med C#

Du kan också anpassa API:et för att hitta liknande ord och ersätta dem med ett visst ord. Du kan till exempel hitta orden “ledsen” och “galen” och ersätta dem med ett enda ord. Följande kodexempel visar hur man hittar och ersätter liknande ord i Word-dokument med C#.

// Ladda ett Word docx-dokument
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// Hitta och ersätt text i dokumentet
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Spara Word-dokumentet
doc.Save("Find-And-Replace-Multiple-Words.docx");

Produktion

c# ersätt text i docx-fil

Hitta och ersätt text med Regex i C#

Det kan vara fallet när du vill hitta och ersätta text som visas i ett visst mönster. Till exempel måste du dölja/ersätta alla e-post-ID:n i ett Word-dokument. I sådana fall kan du skapa ett reguljärt uttryck för e-post-ID:n och skicka det till metoden Document.Range.Replace(Regex, string, FindReplaceOptions).

Följande kodexempel visar hur du hittar och ersätter text baserat på ett mönster i Word-dokument.

// Ladda ett Word docx-dokument
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// Ställ in reguljärt uttryck för e-post-ID:n 
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])?");
// Hitta och ersätt text i dokumentet
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Spara Word-dokumentet
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

Produktion

hur man ersätter text i word-dokument

Du kan också hitta och ersätta text i sidhuvuds- eller sidfotsavsnitten i ett Word-dokument med klassen HeaderFooter. Metoden HeaderFooter.Range.Replace(sträng, sträng, FindReplaceOptions) används för detta ändamål. Följande kodexempel visar hur man ersätter text i sidhuvudet/sidfoten i Word-dokument i C#.

// Ladda ett Word-dokument
Document doc = new Document("document.docx");
// Öppna sidhuvud/sidfot i Word-dokumentet
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Ställ in alternativ
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Ersätt text i sidfoten i Word-dokumentet
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Spara Word-dokumentet
doc.Save("Find-And-Replace-Text-in-Footer.docx");

Produktion

Word-dokument Söka och ersätta text i C#.NET

Hitta och ersätt text med meta-tecken i Word-dokument med C#

Det kan finnas ett scenario där en viss text eller fras består av flera stycken, avsnitt eller sidor. I sådana fall skulle den enkla sök- och ersättmetoden inte fungera effektivt och vi måste hantera styckebrytningar, avsnittsbrytningar eller sidbrytningar. För detta tillåter Aspose.Words dig att använda följande meta-tecken i söksträngen eller ersättningssträngen:

  • &p: styckebrytning
  • &b: avsnittsbrytning
  • &m: sidbrytning
  • &l: radbrytning

Följande kodexempel visar hur du hittar och ersätter texten med en styckebrytning i ett Word-dokument.

// Ladda ett Word docx-dokument
Document doc = new Document("document.docx"); 
// Ställ in alternativ 
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Ersätt text med styckebrytning
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Spara Word-dokumentet
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

Produktion

hitta och ersätta text med reguljära uttryck C#

Slutsats

Den här artikeln tar upp några användbara sätt att hitta och ersätta text i ett Word-dokument baserat på matchade eller liknande ord, fraser och regexmönster programmatiskt. Dessa funktioner automatiserar inte bara textersättningsprocessen utan sparar dig mycket tid och ansträngning som krävs för manuell sökning och ersättning i Word-dokument. Du kan lära dig mer om Asposes Word Library med hjälp av dokumentation.

Relaterade artiklar)

Tips: Du kanske är intresserad av en gratis Text to GIF Converter som låter dig generera animationer från texter.