Jak generowac dokument Word przy uzyciu szablonu Word w C#
W dzisiejszych aplikacjach kluczowe znaczenie ma generowanie dokumentów WORDa na bieżąco do różnych celów, takich jak rozliczenia, faktury, listy itp. Funkcja szablonów dokumentów w programie Microsoft Word oferuje potężne narzędzie zapewniające spójność i wydajność. Jednak ręczne wypełnianie tych szablonów może być czasochłonne i podatne na błędy. W tym miejscu pojawia się IronWord od Iron Software — solidna biblioteka .NET zaprojektowana do automatyzacji procesu wypełniania szablonów Worda programowo. W tym artykułe omówimy, jak używać IronWord do wypełniania szablonu dokumentu WORDa, i podamy praktyczny przykład ilustrujący ten proces.
Jak wygenerować dokument Worda przy użyciu szablonu Worda w języku C
- Utwórz nowy projekt w programie Microsoft Visual Studio.
- Zainstaluj IronWord za pomocą menedżera pakietów NuGet.
- Utwórz dokument w formacie szablonu programu WORD.
- Wstaw dane do dokumentu WORD i zapisz go jako nowy plik.
- Dodaj efekty tekstowe do wygenerowanego dokumentu WORD.
Czym jest IronWord?
IronWord to biblioteka .NET firmy Iron Software, zaprojektowana w celu ułatwienia programowego tworzenia, edycji i zarządzania dokumentami Microsoft Word. Pozwala to programistom zautomatyzować proces generowania dokumentów WORD, ułatwiając dynamiczne tworzenie raportów, faktur, listów i innych rodzajów dokumentów w ramach ich aplikacji.
Najważniejsze cechy IronWord
1. Wypełnianie szablonów WORDa w języku C# i obsługa
IronWord umożliwia wykorzystanie szablonów programu WORD do definiowania symboli zastępczych w dokumencie szablonu i zastępowania ich rzeczywistymi danymi w czasie wykonywania.
2. Manipulacja tekstem
W dokumencie programu WORD można łatwo wstawiać, zamieniać lub usuwać tekst.
3. Formatowanie
Biblioteka obsługuje różne opcje formatowania, w tym style czcionek, rozmiary, kolory i wyrównanie akapitów.
4. Tabele i obrazy
IronWord pozwala wstawiać i edytować tabele oraz obrazy w dokumentach.
5. Kompatybilność
Działa płynnie z różnymi wersjami programu WORD, zapewniając kompatybilność i łatwość użytkowania.
Przykłady zastosowań
- Generowanie raportów: Automatyczne generowanie szczegółowych raportów z danymi dynamicznymi.
- Tworzenie faktur: Twórz profesjonalne faktury, wprowadzając dane klienta i transakcji.
- Zarządzanie umowami: Automatyzacja tworzenia umów zawierających spersonalizowane informacje.
- Listy i zawiadomienia: Generuj spersonalizowane listy i zawiadomienia dla klientów lub pracowników.
IronWord upraszcza pracę z dokumentami Worda w aplikacjach .NET, co czyni go cennym narzędziem dla programistów, którzy chcą zautomatyzować generowanie dokumentów i zadania związane z zarządzaniem nimi.
Wymagania wstępne
Przed rozpoczęciem pracy prosimy upewnić się, że dysponują Państwo następującymi elementami:
- Visual Studio jest zainstalowane na Twoim komputerze.
- Zainstalowano najnowszą wersję .NET Framework.
Krok 1: Utwórz nowy projekt w programie Microsoft Visual Studio.
Zacznijmy od utworzenia nowego projektu w Visual Studio.

Wybierz szablon aplikacji konsolowej na poniższym ekranie.

Podaj nazwę projektu i lokalizację.

Wybierz wersję .NET, najlepiej najnowszą z dostępną obsługą, i kliknij Utwórz.

Krok 2: Zainstaluj menedżera pakietów IronWord NuGet.
Zainstaluj pakiet IronWord NuGet z menedżera pakietów NuGet w programie Visual Studio, postępując zgodnie z poniższą instrukcją.

Alternatywnie, zainstaluj go bezpośrednio za pomocą CLI, używając poniższego polecenia.
dotnet add package IronWord --version 2024.9.1
dotnet add package IronWord --version 2024.9.1
Krok 3: Utwórz dokument w formacie szablonu WORD.
Teraz wygeneruj szablon dokumentu WORDa o objętości jednej lub dwóch stron, który zostanie wykorzystany podczas procesu generowania dokumentu WORDa.
Dear {Name},
Thanks for purchasing {product}. We are happy to serve you always. Your application dated {Date} has been approved. The product comes with an expiry date of {expiryDate}. Renew the product on or before the expiry date.
Feel free to contact {phone} or {email} for further queries.
Address: {Address}
Thank you,
{Sender}
Teraz zapisz powyższy dokument jako Template.docx.
Krok 4: Wstawianie danych do dokumentu WORD i zapisywanie jako nowy plik.
using System;
using System.Collections.Generic;
using IronWord;
class Program
{
static void Main()
{
// Set the license key for IronWord
License.LicenseKey = "your key";
// Define paths for the template and the output file
string templatePath = "Template.docx";
string outputPath = "FilledDocument.docx";
// Create a new instance of the WordDocument class using the template path
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "IronSoftware" },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders in the document with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
}
// Save the filled document
doc.Save(outputPath);
// Notify the user that the document has been saved successfully
Console.WriteLine("Document filled and saved successfully.");
}
}
using System;
using System.Collections.Generic;
using IronWord;
class Program
{
static void Main()
{
// Set the license key for IronWord
License.LicenseKey = "your key";
// Define paths for the template and the output file
string templatePath = "Template.docx";
string outputPath = "FilledDocument.docx";
// Create a new instance of the WordDocument class using the template path
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "IronSoftware" },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders in the document with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
}
// Save the filled document
doc.Save(outputPath);
// Notify the user that the document has been saved successfully
Console.WriteLine("Document filled and saved successfully.");
}
}
Imports System
Imports System.Collections.Generic
Imports IronWord
Friend Class Program
Shared Sub Main()
' Set the license key for IronWord
License.LicenseKey = "your key"
' Define paths for the template and the output file
Dim templatePath As String = "Template.docx"
Dim outputPath As String = "FilledDocument.docx"
' Create a new instance of the WordDocument class using the template path
Dim doc As New WordDocument(templatePath)
' Define a dictionary of placeholders and their replacements
Dim replacements = New Dictionary(Of String, String) From {
{"{Name}", "John Doe"},
{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
{"{Address}", "123 Iron Street, Iron Software"},
{"{product}", "IronWord"},
{"{Sender}", "IronSoftware"},
{"{phone}", "+123 456789"},
{"{email}", "sale@ironsoftware.com"},
{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
}
' Replace placeholders in the document with actual data
For Each replacement In replacements
doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
Next replacement
' Save the filled document
doc.Save(outputPath)
' Notify the user that the document has been saved successfully
Console.WriteLine("Document filled and saved successfully.")
End Sub
End Class
Wyjaśnienie
Podany kod pokazuje, jak użyć biblioteki IronWord do wypełnienia szablonu dokumentu WORDa konkretnymi danymi. Oto zwięzłe wyjaśnienie:
- Konfiguracja licencji: Kod rozpoczyna się od ustawienia klucza licencyjnego dla IronWord w celu aktywacji jego funkcjonalności.
- Ścieżki plików: Określa ścieżki do szablonu WORDa (
Template.docx) oraz pliku wyjściowego (FilledDocument.docx). - Utwórz instancję dokumentu: Instancja
WordDocumentjest tworzona przy użyciu odwołania do ścieżki szablonu. - Zdefiniuj zamienniki: Tworzony jest słownik, w którym klucze reprezentują symbole zastępcze w szablonie, a wartości reprezentują dane do wstawienia.
- Zastąpienie symboli zastępczych: Przegląda słownik, zastępując każdy symbol zastępczy w dokumencie odpowiednimi danymi.
- Zapisz dokument: Na koniec zaktualizowany dokument jest zapisywany w określonej ścieżce wyjściowej.
- Komunikat o zakończeniu: Wyświetlany jest komunikat potwierdzający, że dokument został pomyślnie wypełniony i zapisany.
Wynik

Krok 5: Dodaj efekty tekstowe do wygenerowanego dokumentu WORD.
IronWord umożliwia również dodawanie różnych efektów tekstowych, jak pokazano w tabeli poniżej.
W poniższym przykładzie dodajemy efekty tekstowe do słowa "IronSoftware".
using System;
using System.Collections.Generic;
using IronWord;
using IronWord.Models;
class Program
{
static void Main()
{
// Set the license key for IronWord
License.LicenseKey = "your key";
// Define paths for the template and the output file
string templatePath = "Template.docx";
string outputPath = "glowEffect.docx";
// Create a new instance of the WordDocument class
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "Sale," },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders in the document with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
}
// Create and configure text style methods with a glow effect
TextStyle textStyle = new TextStyle
{
TextEffect = new TextEffect()
{
GlowEffect = new Glow()
{
GlowColor = IronWord.Models.Color.Aqua,
GlowRadius = 10,
},
}
};
// Add styled text to the document
doc.AddText(" IronSoftware").Style = textStyle;
// Save the document with the glow effect
doc.SaveAs(outputPath);
// Notify the user that the document has been saved successfully
Console.WriteLine("Styled document saved successfully.");
}
}
using System;
using System.Collections.Generic;
using IronWord;
using IronWord.Models;
class Program
{
static void Main()
{
// Set the license key for IronWord
License.LicenseKey = "your key";
// Define paths for the template and the output file
string templatePath = "Template.docx";
string outputPath = "glowEffect.docx";
// Create a new instance of the WordDocument class
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "Sale," },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders in the document with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
}
// Create and configure text style methods with a glow effect
TextStyle textStyle = new TextStyle
{
TextEffect = new TextEffect()
{
GlowEffect = new Glow()
{
GlowColor = IronWord.Models.Color.Aqua,
GlowRadius = 10,
},
}
};
// Add styled text to the document
doc.AddText(" IronSoftware").Style = textStyle;
// Save the document with the glow effect
doc.SaveAs(outputPath);
// Notify the user that the document has been saved successfully
Console.WriteLine("Styled document saved successfully.");
}
}
Imports System
Imports System.Collections.Generic
Imports IronWord
Imports IronWord.Models
Friend Class Program
Shared Sub Main()
' Set the license key for IronWord
License.LicenseKey = "your key"
' Define paths for the template and the output file
Dim templatePath As String = "Template.docx"
Dim outputPath As String = "glowEffect.docx"
' Create a new instance of the WordDocument class
Dim doc As New WordDocument(templatePath)
' Define a dictionary of placeholders and their replacements
Dim replacements = New Dictionary(Of String, String) From {
{"{Name}", "John Doe"},
{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
{"{Address}", "123 Iron Street, Iron Software"},
{"{product}", "IronWord"},
{"{Sender}", "Sale,"},
{"{phone}", "+123 456789"},
{"{email}", "sale@ironsoftware.com"},
{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
}
' Replace placeholders in the document with actual data
For Each replacement In replacements
doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
Next replacement
' Create and configure text style methods with a glow effect
Dim textStyle As New TextStyle With {
.TextEffect = New TextEffect() With {
.GlowEffect = New Glow() With {
.GlowColor = IronWord.Models.Color.Aqua,
.GlowRadius = 10
}
}
}
' Add styled text to the document
doc.AddText(" IronSoftware").Style = textStyle
' Save the document with the glow effect
doc.SaveAs(outputPath)
' Notify the user that the document has been saved successfully
Console.WriteLine("Styled document saved successfully.")
End Sub
End Class
Wyjaśnienie
Zmieniony kod ilustruje wykorzystanie biblioteki IronWord do wypełnienia szablonu dokumentu WORD, formatowania tekstu i zapisania zmodyfikowanego dokumentu. Oto zwięzłe wyjaśnienie:
- Konfiguracja licencji: Ustawia klucz licencyjny IronWord w celu włączenia funkcjonalności.
- Ścieżki plików: Określa ścieżki do szablonu (
Template.docx) i pliku wyjściowego (glowEffect.docx). - Utwórz instancję dokumentu: Inicjuje instancję
WordDocumentprzy użyciu podanej ścieżki szablonu. - Zdefiniuj zamienniki: Tworzy słownik symboli zastępczych i odpowiadających im wartości zamiennych.
- Zastąpienie symboli zastępczych: Przeglądanie słownika i zastępowanie symboli zastępczych w dokumencie rzeczywistymi danymi.
- Konfiguracja stylu tekstu: definiuje styl tekstu z efektem blasku, określając kolor i promień.
- Dodaj tekst ze stylem: Dodaje do dokumentu tekst o skonfigurowanym stylu.
- Zapisz dokument: Zapisuje zaktualizowany dokument pod nową nazwą (
glowEffect.docx), odzwierciedlającą zastosowany styl tekstu. - Wynik konsoli: Wyświetlany jest komunikat potwierdzający, że stylizowany dokument został zapisany.
Wynik

Licencjonowanie IronWord
IronWord. Po wprowadzeniu danych licencja zostanie dostarczona na podany adres e-mail. Licencję tę należy umieścić na początku kodu, przed użyciem biblioteki IronWord, jak pokazano poniżej.
License.LicenseKey = "your Key Here";
License.LicenseKey = "your Key Here";
License.LicenseKey = "your Key Here"
Wnioski
IronWord oferuje kilka zalet związanych z tworzeniem dokumentów WORD przy użyciu szablonów. Ułatwia automatyzację tworzenia dokumentów, umożliwiając programistom programowe wypełnianie szablonów konkretnymi danymi, co ogranicza konieczność ręcznego wprowadzania danych. Zwiększa to wydajność i dokładność, ponieważ ryzyko błędu ludzkiego jest zminimalizowane. Ponadto IronWord pomaga zachować spójność między dokumentami, zapewniając, że każdy wygenerowany plik ma ten sam format i strukturę. Automatyzacja powtarzalnych zadań pozwala zaoszczędzić czas i zasoby, dzięki czemu idealnie nadaje się do szybkiego tworzenia dużych ilości dokumentów. IronWord zwiększa produktywność i usprawnia przepływ pracy w sytuacjach wymagających częstego lub złożonego generowania dokumentów.
Postępując zgodnie z instrukcjami zawartymi w tym artykułe i korzystając z podanego przykładu z wykorzystaniem IronWord, można efektywnie zarządzać potrzebami w zakresie generowania dokumentów i usprawnić przepływ pracy.
Często Zadawane Pytania
Jak wypełnić szablon dokumentu WORDa za pomocą języka C#?
Możesz wypełnić szablon dokumentu Worda za pomocą języka C#, korzystając z IronWord. Najpierw skonfiguruj projekt w Visual Studio i zainstaluj pakiet IronWord za pośrednictwem NuGet. Utwórz szablon Worda i użyj IronWord do wstawienia danych, a następnie zapisz wypełniony szablon jako nowy dokument.
Jakie są zalety korzystania z biblioteki .NET do automatyzacji szablonów programu WORD?
Korzystanie z biblioteki IronWord for .NET do automatyzacji szablonów programu Word ogranicza ręczne wprowadzanie danych, minimalizuje błędy i zapewnia spójność podczas tworzenia dokumentów. Umożliwia to wydajną obsługę zadań, takich jak rozliczenia, fakturowanie i pisanie listów.
Czy mogę dodawać efekty tekstowe podczas programowego wypełniania szablonu WORDa?
Tak, dzięki IronWord możesz dodawać efekty tekstowe, takie jak blask lub cień, do tekstu w dokumentach WORD podczas programowego wypełniania szablonów.
Jakie kroki należy wykonać, aby skonfigurować IronWord w projekcie Visual Studio?
Aby skonfigurować IronWord w projekcie Visual Studio, należy najpierw zainstalować pakiet IronWord NuGet, utworzyć szablon WORDa, a następnie użyć metod IronWord do programowego wypełnienia i zapisania dokumentu.
W jaki sposób IronWord zapewnia spójność podczas generowania dokumentów?
IronWord zapewnia spójność, umożliwiając programistom korzystanie z szablonów WORDa, które zachowują ten sam format i układ w wielu dokumentach, co zmniejsza ryzyko błędu ludzkiego.
Jakie są praktyczne zastosowania automatycznego generowania dokumentów WORD?
Automatyzacja generowania dokumentów WORD za pomocą IronWord może znaleźć zastosowanie w różnych scenariuszach, w tym w generowaniu raportów, tworzeniu faktur, zarządzaniu umowami oraz tworzeniu spersonalizowanych listów.
Czy za pomocą IronWord można obsługiwać różne wersje programu Microsoft WORD?
Tak, IronWord jest kompatybilny z różnymi wersjami programu WORD, co pozwala na płynną obsługę dokumentów w różnych środowiskach.
Co jest potrzebne, aby rozpocząć korzystanie z IronWord do zarządzania dokumentami WORD?
Aby rozpocząć korzystanie z IronWord, upewnij się, że masz zainstalowane Visual Studio wraz z najnowszym .NET Framework. Następnie dodaj IronWord do swojego projektu za pomocą menedżera pakietów NuGet.




