UTILISATION D'IRONWORD

Comment créer des documents Word sans l'interopérabilité d'Office en C#

Regan Pun
Regan Pun
mars 12, 2024
Partager:

Les documents Microsoft Word sont largement utilisés à des fins diverses, qu'il s'agisse de rapports professionnels formels ou de lettres personnelles. En C#, les développeurs ont souvent besoin de générer des documents Microsoft Word par programme. Les développeurs d'applications Windows ont traditionnellement utilisé l'interopérabilité Microsoft Office pour générer et créer des documents Word à l'aide de C#.

Cependant, cette approche n'est pas accessible à tous, et l'on peut trouver des développeurs utilisant un système d'exploitation ou une machine Linux où l'interface de Microsoft Office n'est pas disponible. Dans ce cas, les développeurs doivent explorer d'autres bibliothèques qui peuvent fonctionner indépendamment sur différentes plateformes. Une bibliothèque puissante pour travailler avec des fichiers Word de manière programmatique est IronWord, de Iron Software.

IronWord offre des fonctionnalités robustes pour travailler avec des documents Word dans des applications .NET et peut fonctionner sur différentes plateformes et images/conteneurs docker basés sur Linux. Avec IronWord, qui dispose d'une API intuitive pour les documents C#, VB.NET Word et Docx, il n'est pas nécessaire d'installer Microsoft Office, Office automation ou Word Interop, pour créer, modifier et exporter des fichiers de documents Word. IronWord est entièrement compatible avec .NET 8, 7, 6, Framework, Core et Azure.

Cet article porte sur la création de documents Word en C# à l'aide de la bibliothèque IronWord.

Comment créer des documents Word sans Office Interop dans C# ;

  1. Créez un nouveau projet C#.

  2. Installez la bibliothèque IronWord.

  3. Créez un document Word à l'aide de la bibliothèque IronWord.

  4. Ajouter du contenu au document existant.

  5. Enregistrez le document Word créé.

  6. Ouvrez et affichez le document Word créé.

    Prérequis :

  7. Visual Studio : Assurez-vous d'avoir Visual Studio ou tout autre environnement de développement C# installé.

  8. Gestionnaire de Paquets NuGet : Assurez-vous de pouvoir utiliser NuGet pour gérer les paquets dans votre projet

Étape 1 : Créer un nouveau projet C

Créez une nouvelle application console C# ou utilisez un projet existant dans lequel vous souhaitez générer le document Word.

Sélectionnez le modèle d'application de la console et cliquez sur suivant.

Comment créer des documents Word sans Office Interop en C#: Figure 1 - Modèle d'application console pour créer un nouveau projet

Dans l'étape suivante, vous pouvez indiquer les noms de la solution et du projet.

Comment créer des documents Word sans Office Interop en C# : Figure 2 - Configuration du projet avec le nom de solution et de projet

Sélectionnez la version .NET et cliquez sur "Créer".

Comment créer des documents Word sans Office Interop en C#: Figure 3 - Création du projet avec la version .NET correcte

Étape 2 : Installation de la bibliothèque IronWord

Ouvrez votre projet C# et installez la bibliothèque IronWord en utilisant la console du gestionnaire de packages NuGet :

Install-Package IronWord -Version 2024.1.2

Le paquet NuGet peut également être installé à l'aide du gestionnaire de paquets de Visual Studio, comme indiqué ci-dessous.

Comment créer des documents Word sans Office Interop en C#: Figure 4 - Installation d'IronWord avec le gestionnaire de paquets VS

Étape 3 : Créer et enregistrer un document Word à l'aide de la bibliothèque IronWord

Commençons par l'exemple simple de la création d'un document Word à l'aide de la bibliothèque IronWord. Le code suivant démontre comment créer un document Word essentiel avec un seul paragraphe contenant le texte "Hello, World!"

using IronWord;
using IronWord.Models;
// Create textrun instance
TextRun textRun = new TextRun("Hello, World!");
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Create a new Word document object
WordDocument doc = new WordDocument(paragraph);
// Export docx
doc.SaveAs("example.docx"); // save docx file to disk
using IronWord;
using IronWord.Models;
// Create textrun instance
TextRun textRun = new TextRun("Hello, World!");
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Create a new Word document object
WordDocument doc = new WordDocument(paragraph);
// Export docx
doc.SaveAs("example.docx"); // save docx file to disk
Imports IronWord
Imports IronWord.Models
' Create textrun instance
Private textRun As New TextRun("Hello, World!")
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)
' Create a new Word document object
Dim doc As New WordDocument(paragraph)
' Export docx
doc.SaveAs("example.docx") ' save docx file to disk
$vbLabelText   $csharpLabel

Après avoir exécuté l'exemple de code ci-dessus, le nouveau fichier de document, exemple.docx, est créé et le résultat est illustré ci-dessous.

Comment créer des documents Word sans Office Interop en C#: Figure 5 - Document Word créé via le code ci-dessus.

Il s'agit d'un exemple fondamental de génération d'un fichier de document Word à l'aide d'IronWord. Pour plus d'informations, vous pouvez consulter les documents ici.

Ajouter des paragraphes avec style à un document Word.

Maintenant que nous savons comment créer un document Word simple à l'aide d'IronWord, ajoutons des paragraphes et du texte stylé.

TextRun peut également prendre en compte les données de style, ce qui permet d'améliorer la représentation visuelle du texte. Le texte peut être défini avec des styles tels que le barré, le gras, l'italique et le souligné.

Modifiez et ajoutez le code ci-dessous au programme que vous avez créé précédemment.

using IronWord;
using IronWord.Models;
// Create textrun
TextRun textRun = new TextRun("Hello, World!"); // add string
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Configure text
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling."); // add string or text
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle); 
// add italic string
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle); 
// add bold string
// Add text
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);
// Create a new Word document
WordDocument doc = new WordDocument(paragraph);
// Export docx document
doc.SaveAs("example.docx");// docx file save in EXE location
using IronWord;
using IronWord.Models;
// Create textrun
TextRun textRun = new TextRun("Hello, World!"); // add string
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Configure text
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling."); // add string or text
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle); 
// add italic string
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle); 
// add bold string
// Add text
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);
// Create a new Word document
WordDocument doc = new WordDocument(paragraph);
// Export docx document
doc.SaveAs("example.docx");// docx file save in EXE location
Imports IronWord
Imports IronWord.Models
' Create textrun
Private textRun As New TextRun("Hello, World!") ' add string
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)
' Configure text
Dim introText As New TextRun("This is an example paragraph with italic and bold styling.") ' add string or text
Dim italicStyle As New TextStyle() With {.IsItalic = True}
Dim italicText As New TextRun("Italic example sentence.", italicStyle)
' add italic string
Dim boldStyle As New TextStyle() With {.IsBold = True}
Dim boldText As New TextRun("Bold example sentence.", boldStyle)
' add bold string
' Add text
paragraph.AddTextRun(introText)
paragraph.AddTextRun(italicText)
paragraph.AddTextRun(boldText)
' Create a new Word document
Dim doc As New WordDocument(paragraph)
' Export docx document
doc.SaveAs("example.docx") ' docx file save in EXE location
$vbLabelText   $csharpLabel

Ajouter un tableau à un document Word

Pour une représentation claire des données, celles-ci peuvent également être représentées dans une grille. Lorsque les données sont disposées sous forme de grille, on parle de tableau. En utilisant IronWord, nous pouvons ajouter des tableaux et des images au document Word, comme indiqué ci-dessous :

using IronWord;
using IronWord.Models;
// Create table cell
TableCell cell = new TableCell();
TextRun textRun = new TextRun();
textRun.Text = "Sample text";
// Add textrun to the cell
cell.AddContent(new Paragraph(textRun));
// Configure border style 
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = new IronColor(IronSoftware.Drawing.Color.Black);
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick;
borderStyle.BorderSize = 5;
// Configure table border
TableBorders tableBorders = new TableBorders() { 
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};
cell.Borders = tableBorders;
// Create row and add cell
TableRow row = new TableRow();
row.AddCell(cell); // add cell
row.AddCell(cell); // add cell
// Create table and add row
Table table = new Table();
table.AddRow(row);
// Generate document from the table
WordDocument doc = new WordDocument(table);
// Export Word document
doc.SaveAs("Document.docx"); // docx file save in EXE location
using IronWord;
using IronWord.Models;
// Create table cell
TableCell cell = new TableCell();
TextRun textRun = new TextRun();
textRun.Text = "Sample text";
// Add textrun to the cell
cell.AddContent(new Paragraph(textRun));
// Configure border style 
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = new IronColor(IronSoftware.Drawing.Color.Black);
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick;
borderStyle.BorderSize = 5;
// Configure table border
TableBorders tableBorders = new TableBorders() { 
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};
cell.Borders = tableBorders;
// Create row and add cell
TableRow row = new TableRow();
row.AddCell(cell); // add cell
row.AddCell(cell); // add cell
// Create table and add row
Table table = new Table();
table.AddRow(row);
// Generate document from the table
WordDocument doc = new WordDocument(table);
// Export Word document
doc.SaveAs("Document.docx"); // docx file save in EXE location
Imports IronWord
Imports IronWord.Models
' Create table cell
Private cell As New TableCell()
Private textRun As New TextRun()
textRun.Text = "Sample text"
' Add textrun to the cell
cell.AddContent(New Paragraph(textRun))
' Configure border style 
Dim borderStyle As New BorderStyle()
borderStyle.BorderColor = New IronColor(IronSoftware.Drawing.Color.Black)
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick
borderStyle.BorderSize = 5
' Configure table border
Dim tableBorders As New TableBorders() With {
	.TopBorder = borderStyle,
	.RightBorder = borderStyle,
	.BottomBorder = borderStyle,
	.LeftBorder = borderStyle
}
cell.Borders = tableBorders
' Create row and add cell
Dim row As New TableRow()
row.AddCell(cell) ' add cell
row.AddCell(cell) ' add cell
' Create table and add row
Dim table As New Table()
table.AddRow(row)
' Generate document from the table
Dim doc As New WordDocument(table)
' Export Word document
doc.SaveAs("Document.docx") ' docx file save in EXE location
$vbLabelText   $csharpLabel

Dans l'exemple ci-dessus, nous avons ajouté un tableau à un document Word à l'aide de bordures.

Ajouter des images à un document Word

Les images améliorent la présentation du document et peuvent ajouter des couleurs et un attrait visuel.

Les images peuvent être ajoutées par programme à un document Word à l'aide d'IronWord, comme le montre le code ci-dessous :

using IronWord;
using IronWord.Models;
// Load new document
WordDocument doc = new WordDocument();
// Configure image
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg");
image.Width = 200; // In unit pixel (px)
image.Height = 200; // In unit pixel (px)
Paragraph paragraph = new Paragraph();
// Add image
paragraph.AddImage(image);
// Add paragraph 
doc.AddParagraph(paragraph);
// Export docx
doc.SaveAs("save_document.docx"); // docx file
using IronWord;
using IronWord.Models;
// Load new document
WordDocument doc = new WordDocument();
// Configure image
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg");
image.Width = 200; // In unit pixel (px)
image.Height = 200; // In unit pixel (px)
Paragraph paragraph = new Paragraph();
// Add image
paragraph.AddImage(image);
// Add paragraph 
doc.AddParagraph(paragraph);
// Export docx
doc.SaveAs("save_document.docx"); // docx file
Imports IronWord
Imports IronWord.Models
' Load new document
Private doc As New WordDocument()
' Configure image
Private image As New IronWord.Models.Image("SalesChart.jpg")
image.Width = 200 ' In unit pixel (px)
image.Height = 200 ' In unit pixel (px)
Dim paragraph As New Paragraph()
' Add image
paragraph.AddImage(image)
' Add paragraph 
doc.AddParagraph(paragraph)
' Export docx
doc.SaveAs("save_document.docx") ' docx file
$vbLabelText   $csharpLabel

Ici, nous ajoutons une image utilisant IronWord.Models.Image avec une hauteur et une largeur de 200 pixels à un paragraphe.

Licence (essai gratuit disponible)

L'utilisation d'IronWord nécessite une licence. Une clé d'essai peut être obtenue depuis le site Web de Iron Software ici. Cette clé doit être placée dans appsettings.json.

{
    "IronWord.LicenseKey":"IRONWORD.MYLICENSE.KEY.TRIAL"
}
{
    "IronWord.LicenseKey":"IRONWORD.MYLICENSE.KEY.TRIAL"
}
If True Then
	"IronWord.LicenseKey":"IRONWORD.MYLICENSE.KEY.TRIAL"
End If
$vbLabelText   $csharpLabel

Indiquez votre adresse électronique pour obtenir une licence d'essai. Une fois que vous avez indiqué votre adresse électronique, la clé vous sera envoyée par courrier électronique.

Comment créer des documents Word sans Office Interop en C#: Figure 6 - Popup après la soumission réussie d'un formulaire d'essai

Conclusion

Créer des documents Word en C# à l'aide de la bibliothèque IronWord offre un moyen flexible et efficace de générer des documents sans dépendre de Microsoft Office. Que vous ayez besoin de créer des lettres simples ou des rapports complexes avec des tableaux et des images, IronWord vous permet de réaliser cela de manière programmatique. Cet article propose un tutoriel complet sur la création de documents Word. Avec IronWord, vous avez la possibilité d'automatiser la création de documents Word, ce qui rend vos applications C# plus polyvalentes et plus productives.

Et pour les développeurs qui souhaitent manipuler des fichiers PDF en conjonction avec les documents Word qu'ils génèrent, IronPDF, une autre bibliothèque C# produite par Iron Software, est tout indiquée. Pour le vérifier, cliquez ici.

Regan Pun
Ingénieur logiciel
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT
Comment créer un document Word par programmation en VB .NET
SUIVANT >
Comment lire un document Word avec formatage en C#