How to Replace Text in a Word Document with C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWord umożliwia programistom C# programowe wyszukiwanie i zamianę tekstu w dokumentach Worda bez użycia Microsoft Office Interop, oferując rozwiązanie do automatyzacji aktualizacji dokumentów, personalizacji szablonów i zarządzania zawartością w hurtowych ilościach.

Automatyzacja zamiany tekstu w dokumentach Worda jest powszechną potrzebą, niezależnie od tego, czy personalizujemy szablony, aktualizujemy raporty, czy zarządzamy zawartością w dużych ilościach. IronWord to biblioteka C#, która upraszcza to zadanie, obsługując wszystko, od prostych operacji znajdź-i-zamień po złożone przepływy pracy związane z przetwarzaniem dokumentów.

IronWord manipuluje dokumentami Worda bezpośrednio, nie polegając na Microsoft Office Interop. Oznacza to, że nie musisz mieć zainstalowanego Worda na serwerze, co skutkuje szybszym, bardziej niezawodnym i skalowalnym rozwiązaniem dla procesów zaplecza i aplikacji sieciowych. Ta niezależność od Microsoft Office czyni IronWord szczególnie wartościowym dla wdrożeń w chmurze, aplikacji kontenerowych i zautomatyzowanych przepływów pracy z dokumentami.

W tym przewodniku krok po kroku zaprezentujemy wszechstronne przykłady kodu, które pokażą, jak znaleźć i zamienić tekst w dowolnym dokumencie Word. Niezależnie od tego, czy pracujesz z prostymi zamianami tekstu, czy musisz obsłużyć złożone struktury dokumentów z wieloma akapitami i formatowaniem, IronWord dostarcza narzędzi, których potrzebujesz.

Szybki start: Łatwa zamiana tekstu w dokumentach Worda

Ten przewodnik pokazuje, jak zamienić tekst w dokumencie Worda za pomocą IronWord. Zaledwie za pomocą kilku linijek C#, możesz załadować plik DOCX, zamienić określony tekst i zapisać zaktualizowany dokument. Proces ten działa bez użycia Microsoft Office Interop, co czyni go idealnym dla procesów zaplecza i aplikacji sieciowych.

  1. Install IronWord with NuGet Package Manager

    PM > Install-Package IronWord
  2. Skopiuj i uruchom ten fragment kodu.

    IronWord.Document doc = new IronWord.Document("sample.docx");
    doc.ReplaceText("oldText", "newText");
    doc.SaveAs("updated.docx");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronWord w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak zamienić tekst w dokumencie Worda?

Zamiana tekstu w obrębie dokumentu Worda jest intuicyjna dzięki IronWord. Najpierw ładujemy istniejący dokument za pomocą konstruktora WordDocument. Następnie uzyskujemy dostęp do właściwości Paragraphs i używamy metody ReplaceText w konkretnym akapicie. To podejście daje precyzyjną kontrolę nad tym, które części dokumentu zmodyfikować.

Metoda ReplaceText przyjmuje dwa parametry typu string: tekst do znalezienia i tekst, którym go zastąpić. Ta metoda dokonuje pełnej zamiany wszystkich pasujących wystąpień w wybranym akapicie, co jest idealne w sytuacjach takich jak aktualizacja nazw produktów, zmiana dat czy personalizacja danych klienta.

Porady Metoda ReplaceText rozróżnia wielkość liter i zastępuje wszystkie wystąpienia ciągu znaków w wybranym akapicie.

Pracując z kolekcją Paragraphs, ważne jest, aby zrozumieć, jak IronWord strukturyzuje zawartość dokumentu. Każdy akapit w dokumencie Word jest reprezentowany jako indywidualny element w kolekcji, pozwalając na precyzyjne celowanie w konkretne sekcje dokumentu.

PoradyWszystkie listy obiektów używane w tym przykładzie mają indeksację zaczynającą się od zera.

Jak wygląda dokument źródłowy?

W tym przykładzie użyjemy tego przykładowego dokumentu Worda, który zawiera dwa akapity, oba z tekstem "stary tekst". Ta prosta struktura pokazuje, jak zamiana tekstu działa na poziomie akapitu.

Przykładowy dokument Word pokazujący zawartość 'stary tekst' przed zamianą

Jak napisać kod zamiany?

Oto kod, aby zamienić "stary tekst" pierwszego akapitu na "nowy tekst". Zauważ jak używamy notacji indeksu, aby celować w konkretne akapity, dając nam precyzyjną kontrolę nad tym, która zawartość zostaje zmodyfikowana:

:path=/static-assets/word/content-code-examples/how-to/replace-words.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Replace the first paragraph's old text with new text
doc.Paragraphs[0].ReplaceText("old text", "new text");

// Save updated Word Document
doc.SaveAs("updated.docx");
Imports IronWord

' Open existing Word
Dim doc As New WordDocument("sample.docx")

' Replace the first paragraph's old text with new text
doc.Paragraphs(0).ReplaceText("old text", "new text")

' Save updated Word Document
doc.SaveAs("updated.docx")
$vbLabelText   $csharpLabel

Powyższy kod demonstruje prostotę zamiany tekstu za pomocą IronWord. Ładując dokument, celując w konkretny akapit i wywołując ReplaceText, możesz zmodyfikować zawartość dokumentu w zaledwie kilka linijek kodu. To podejście jest bardziej bezpośrednie niż tradycyjne metody Interop Office.

Jak wygląda wynik?

Wynikowy dokument Word pokazujący 'nowy tekst' w pierwszym akapicie i 'stary tekst' w drugim akapicie po operacji zamiany

Jak widać w plik z wynikami, tylko tekst pierwszego akapitu został zmieniony, podczas gdy drugi pozostaje nietknięty. Ta selektywna możliwość zamiany jest kluczowa, gdy potrzebujesz zaktualizować konkretne sekcje bez wpływu na cały dokument.

Jak zamienić wiele wystąpień tekstu?

Aby zamienić każde wystąpienie słowa w całym dokumencie, przejdź przez kolekcję Paragraphs i zastosuj metodę ReplaceText do każdego wystąpienia. To podejście zapewnia, że żadne wystąpienie twojego docelowego tekstu nie zostanie pominięte, niezależnie od tego, gdzie pojawia się w dokumencie.

Użyjemy tego samego pliku sample.docx, co wcześniej. Jeśli zastępowany tekst nie zostanie znaleziony w akapicie, żadna operacja nie zostanie przeprowadzona, a pętla kontynuuje do następnego akapitu. To zabezpieczenie oznacza, że nie musisz martwić się o sprawdzanie, czy tekst istnieje, zanim próbujesz go zastąpić.

Zwróć uwagę Jeśli tekst, który chcesz zamienić, nie zostanie znaleziony, żadne operacje nie zostaną przeprowadzone.

Jakiego kodu potrzebuję do wielu zamian?

Oto kod, aby zamienić wszystkie wystąpienia "stary tekst" na "nowy tekst" w całym dokumencie:

:path=/static-assets/word/content-code-examples/how-to/replace-words-multiple.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Loop through each paragraph to find and replace text
for (int i = 0; i < doc.Paragraphs.Count; i++)
{
    // Replace all occurrences of "old text" with "new text" in the current paragraph
    doc.Paragraphs[i].ReplaceText("old text", "new text");
}

// Save updated Word Document
doc.SaveAs("updated.docx");
Imports IronWord

' Open existing Word
Dim doc As New WordDocument("sample.docx")

' Loop through each paragraph to find and replace text
For i As Integer = 0 To doc.Paragraphs.Count - 1
    ' Replace all occurrences of "old text" with "new text" in the current paragraph
    doc.Paragraphs(i).ReplaceText("old text", "new text")
Next

' Save updated Word Document
doc.SaveAs("updated.docx")
$vbLabelText   $csharpLabel

To rozwiązanie pętli zapewnia pełne pokrycie twojego dokumentu. Iterując przez każdy akapit, zapewniasz zastąpienie wszystkich wystąpień docelowego tekstu. Ta metoda jest szczególnie przydatna przy masowych aktualizacjach, takich jak zmiana nazw firm, aktualizacja terminologii lub stosowanie jednolitego formatowania w całym dokumencie.

Jak będzie wyglądał dokument po wielu zamianach?

Wynikowy dokument Word pokazujący dwie linie 'nowy tekst' po operacji zamiany tekstu

Jak widać z tego zaktualizowanego dokumentu Word, oba akapity zostały zastąpione "nowym tekstem". To pokazuje skuteczność podejścia z pętlą do kompleksowej zamiany tekstu.

Jak mogę sprawdzić, czy tekst istnieje przed zamianą?

Jeśli musisz zweryfikować, że tekst istnieje przed wykonaniem operacji, użyj metody FindText. Ta metoda przeszukuje cały dokument i zwraca pierwsze TextElement, które odpowiada zapytaniu. Ten krok weryfikacji może być przydatny, gdy musisz potwierdzić obecność określonej zawartości przed wprowadzeniem zmian lub przy budowie logiki warunkowej na bazie zawartości dokumentu.

Metoda FindText jest szczególnie cenna w scenariuszach, gdzie:

  • Musisz zarejestrować, które dokumenty zawierają określony tekst
  • Chcesz wykonywać różne działania w zależności od tego, czy tekst został znaleziony
  • Tworzysz system walidacji dokumentu
  • Musisz generować raporty dotyczące zawartości dokumentów

Poniżej znajduje się przykład wyszukiwania starego tekstu w wymienionym wcześniej dokumencie Word.

Jaki kod stosuje się do znalezienia tekstu?

:path=/static-assets/word/content-code-examples/how-to/replace-words-find-text.cs
using IronWord;
using System;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Returns the first TextContent element that contains the specified text.
Console.WriteLine(doc.FindText("old text"));
Imports IronWord
Imports System

' Open existing Word
Dim doc As New WordDocument("sample.docx")

' Returns the first TextContent element that contains the specified text.
Console.WriteLine(doc.FindText("old text"))
$vbLabelText   $csharpLabel

Ten kod pokazuje prostotę wyszukiwania tekstu za pomocą IronWord. Metoda FindText zwraca obiekt TextElement, jeśli tekst zostanie znaleziony, lub null, jeśli nie, co czyni implementację logiki warunkowej na bazie wyników wyszukiwania łatwą.

Co pokazują wyniki wyszukiwania tekstu?

Konsola debugowania Visual Studio wyświetlająca wynik 'stary_tekst' z operacji FindText

Jak widać, zwróciło pasujący tekst, potwierdzając, że termin wyszukiwania istnieje w dokumencie. Ta zdolność do weryfikacji jest niezbędna do budowania solidnych aplikacji przetwarzających dokumenty, które muszą obsługiwać różne scenariusze zawartości.

Ostrzeżenie Jeśli FindText nie zwraca niczego, tekst nie istnieje w dokumencie. Upewnij się, że twój termin wyszukiwania jest poprawnie zapisany i pasuje do wielkości liter tekstu w dokumencie.

Najlepsze praktyki dotyczące zamiany tekstu

Pracując z zamianą tekstu w dokumentach Word, rozważ te najlepsze praktyki:

  1. Rozróżnianie wielkości liter: ReplaceText rozróżnia wielkość liter. Konwertuj tekst na jednolitą wielkość liter dla zamiany nierozróżniającej wielkości liter.

  2. Optymalizacja wydajności: Grupa zamian i zapisuj raz, aby zredukować operacje I/O i poprawić wydajność.

  3. Obsługa błędów: Zaimplementuj obsługę błędów dla zablokowanej, uszkodzonej lub nieoczekiwanej zawartości dokumentu.

  4. Strategia tworzenia kopii zapasowych: Twórz kopie zapasowe przed masowymi zamianami, szczególnie w środowiskach produkcyjnych.

  5. Zarządzanie pamięcią: Prawidłowo usuwaj obiekty dokumentów przy przetwarzaniu wielu dokumentów, aby zapobiec wyciekom pamięci.

Proste API IronWord sprawia, że implementacja tych najlepszych praktyk jest łatwa, pozwalając na budowę solidnych rozwiązań przetwarzających dokumenty z pewnością.

Często Zadawane Pytania

Jak moge zamienic tekst w dokumencie Worda uzywajac C#?

IronWord umozliwia prosta zamiane tekstu w dokumentach Worda za pomoca C#. Zaladuj dokument uzywajac konstruktora WordDocument, nastepnie uzyj metody ReplaceText, aby znalezc i zamienic tekst. Metoda ta przyjmuje dwa parametry: tekst do znalezienia i tekst zastepujacy. Dziala to bez Microsoft Office Interop, co czyni to idealnym rozwiazaniem dla aplikacji serwerowych.

Czy moge zamienic tekst bez zainstalowanego Microsoft Office?

Tak, IronWord manipuluje dokumentami Word bez potrzeby korzystania z Microsoft Office Interop. To oznacza, ze nie musisz miec Worda zainstalowanego na swoim serwerze, co prowadzi do szybszego, bardziej niezawodnego rozwiazania, idealnego dla wdrozen w chmurze, aplikacji konteneryzowanych i automatycznych pipeline'ow przetwarzania dokumentow.

Jak najprosciej znalezc i zamienic tekst w pliku DOCX?

Najszybszym sposobem jest uzycie trzy-liniowej metody IronWord: stworz obiekt Document z twoja sciezka pliku, wywolaj metode ReplaceText z twoim starym i nowym tekstem, nastepnie zapisz uzywajac SaveAs. Ten minimalistyczny przebieg obsluguje wszystko od ladowania po zapis zaktualizowanego dokumentu.

Czy zamiana tekstu jest rozrozniajaca wielkosc liter?

Tak, metoda ReplaceText w IronWord domyslnie rozroznia wielkosc liter. Zamieni wszystkie pasujace instancje w wybranym paragrafie lub dokumencie, zapewniajac precyzyjna kontrole nad tym, ktory tekst zostanie zamieniony na podstawie dokladnego dopasowania wielkosci liter.

Czy moge zamienic tekst tylko w okreslonych paragrafach?

Oczywiscie. IronWord zapewnia szczegolowa kontrole za pomoca wlasciwosci Paragraphs. Mozesz uzyskac dostep do pojedynczych paragrafow z kolekcji i wywolac ReplaceText tylko na okreslonych paragrafach, umozliwiajac celowane zamiany zamiast zmian w caleym dokumencie.

Jakie sa typowe przypadki uzycia programowej zamiany tekstu?

IronWord jest czesto uzywany do personalizacji szablonow, uaktualniania raportow, zarzadzania masowa trescia i automatyzacji aktualizacji dokumentow. Jest to szczegolnie przydatne w scenariuszach takich jak aktualizacja nazw produktow, zmiana dat, personalizacja informacji klientow lub dowolne sytuacje wymagajace automatycznego przetwarzania dokumentow.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 38,043 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronWord
uruchom próbkę zobacz, jak twoje dane stają się dokumentem Word.