Passer au contenu du pied de page
UTILISATION D'IRONWORD

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

Les documents Microsoft Word sont largement utilisés à des fins diverses, allant des rapports commerciaux officiels aux lettres personnelles. En C#, les développeurs ont souvent besoin de générer des documents Microsoft Word par programmation. Les développeurs d'applications Windows ont traditionnellement utilisé l'interopérabilité Microsoft Office pour générer et créer des documents Word en utilisant C#.

Cependant, cette approche n'est pas accessible à tous, et on trouve des développeurs utilisant un système d'exploitation ou une machine Linux où l'interface Microsoft Office n'est pas disponible. Dans ces cas-là, les développeurs doivent explorer d'autres bibliothèques capables de fonctionner indépendamment sur différentes plateformes. IronWord , d' Iron Software , est une bibliothèque puissante permettant de travailler par programmation avec des fichiers Word.

IronWord offre des fonctionnalités robustes pour travailler avec des documents Word dans des applications .NET et peut s'exécuter 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, l'automatisation Office ou Word Interop pour créer, modifier et exporter des fichiers de documents Word. IronWord prend entièrement en charge .NET 8, 7, 6, Framework, Core et Azure.

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

Comment créer des documents Word sans Office Interop en 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 :

  1. Visual Studio : Assurez-vous d'avoir Visual Studio ou tout autre environnement de développement C# installé.
  2. 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 pour lequel vous souhaitez générer le document Word.

Sélectionnez le modèle d'application console et cliquez sur Suivant.

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

À l'étape suivante, vous pouvez fournir les noms de solution et de projet.

Comment créer des documents Word sans Office Interop en C# : Figure 2 - Configuration du projet avec le nom de la solution et du 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 d'un projet avec la version .NET appropriée

Étape 2 : Installer la bibliothèque IronWord

Ouvrez votre projet C# et installez la bibliothèque IronWord à l'aide de la console du gestionnaire de packages NuGet :

Install-Package IronWord -Version 2024.1.2

Le package NuGet peut également être installé à l'aide du Gestionnaire de packages 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 packages de Visual Studio

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

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

using IronWord;
using IronWord.Models;

// Create a text run instance with "Hello, World!" content
TextRun textRun = new TextRun("Hello, World!");

// Create a paragraph and add the text run to it
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);

// Create a new Word document object with the paragraph
WordDocument doc = new WordDocument(paragraph);

// Save the document as a .docx file
doc.SaveAs("example.docx"); // Saves the file to disk with the name example.docx
using IronWord;
using IronWord.Models;

// Create a text run instance with "Hello, World!" content
TextRun textRun = new TextRun("Hello, World!");

// Create a paragraph and add the text run to it
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);

// Create a new Word document object with the paragraph
WordDocument doc = new WordDocument(paragraph);

// Save the document as a .docx file
doc.SaveAs("example.docx"); // Saves the file to disk with the name example.docx
Imports IronWord
Imports IronWord.Models

' Create a text run instance with "Hello, World!" content
Private textRun As New TextRun("Hello, World!")

' Create a paragraph and add the text run to it
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)

' Create a new Word document object with the paragraph
Dim doc As New WordDocument(paragraph)

' Save the document as a .docx file
doc.SaveAs("example.docx") ' Saves the file to disk with the name example.docx
$vbLabelText   $csharpLabel

Après l'exécution de l'exemple de code ci-dessus, le nouveau fichier de document, example.docx , est créé et le résultat est celui présenté ci-dessous.

! Comment créer des documents Word sans Office Interop en C# : Figure 5 - Document Word créé grâce au code ci-dessus.

Voici un exemple fondamental de génération d'un fichier document Word à l'aide d'IronWord. Pour plus d'informations, vous pouvez consulter la documentation .

Ajouter des paragraphes mis en forme à un document Word

Maintenant que nous savons comment créer un document Word simple avec IronWord, ajoutons des paragraphes et du texte stylisé.

TextRun peut également prendre en compte les données de style, améliorant ainsi la représentation visuelle du texte. Le texte peut être mis en forme avec des styles tels que barré, gras, italique et souligné.

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

using IronWord;
using IronWord.Models;

// Create text runs with different styles
TextRun textRun = new TextRun("Hello, World!"); // Simple string
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);

// Configure and add italic text
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling.");
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle);

// Configure and add bold text
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle);

// Add text runs to the paragraph
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);

// Create and save the new Word document
WordDocument doc = new WordDocument(paragraph);
doc.SaveAs("example.docx"); // Saves the file to disk with the name example.docx
using IronWord;
using IronWord.Models;

// Create text runs with different styles
TextRun textRun = new TextRun("Hello, World!"); // Simple string
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);

// Configure and add italic text
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling.");
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle);

// Configure and add bold text
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle);

// Add text runs to the paragraph
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);

// Create and save the new Word document
WordDocument doc = new WordDocument(paragraph);
doc.SaveAs("example.docx"); // Saves the file to disk with the name example.docx
Imports IronWord
Imports IronWord.Models

' Create text runs with different styles
Private textRun As New TextRun("Hello, World!") ' Simple string
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)

' Configure and add italic text
Dim introText As New TextRun("This is an example paragraph with italic and bold styling.")
Dim italicStyle As New TextStyle() With {.IsItalic = True}
Dim italicText As New TextRun("Italic example sentence.", italicStyle)

' Configure and add bold text
Dim boldStyle As New TextStyle() With {.IsBold = True}
Dim boldText As New TextRun("Bold example sentence.", boldStyle)

' Add text runs to the paragraph
paragraph.AddTextRun(introText)
paragraph.AddTextRun(italicText)
paragraph.AddTextRun(boldText)

' Create and save the new Word document
Dim doc As New WordDocument(paragraph)
doc.SaveAs("example.docx") ' Saves the file to disk with the name example.docx
$vbLabelText   $csharpLabel

Ajouter un tableau à un document Word

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

using IronWord;
using IronWord.Models;

// Create a table cell with sample text
TableCell cell = new TableCell();
TextRun textRun = new TextRun("Sample text");

// Add text run to the cell as a paragraph
cell.AddContent(new Paragraph(textRun));

// Configure cell border style
BorderStyle borderStyle = new BorderStyle
{
    BorderColor = new IronColor(IronSoftware.Drawing.Color.Black),
    BorderValue = IronWord.Models.Enums.BorderValues.Thick,
    BorderSize = 5
};

// Set table borders
TableBorders tableBorders = new TableBorders
{
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle
};
cell.Borders = tableBorders;

// Create a table row and add cells to it
TableRow row = new TableRow();
row.AddCell(cell); // Add the first cell
row.AddCell(cell); // Add the second cell, duplicating to mimic a row with two identical cells

// Create a table and add the row to the table
Table table = new Table();
table.AddRow(row);

// Create and save a Word document using the table
WordDocument doc = new WordDocument(table);
doc.SaveAs("Document.docx"); // Saves the file to disk with the name Document.docx
using IronWord;
using IronWord.Models;

// Create a table cell with sample text
TableCell cell = new TableCell();
TextRun textRun = new TextRun("Sample text");

// Add text run to the cell as a paragraph
cell.AddContent(new Paragraph(textRun));

// Configure cell border style
BorderStyle borderStyle = new BorderStyle
{
    BorderColor = new IronColor(IronSoftware.Drawing.Color.Black),
    BorderValue = IronWord.Models.Enums.BorderValues.Thick,
    BorderSize = 5
};

// Set table borders
TableBorders tableBorders = new TableBorders
{
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle
};
cell.Borders = tableBorders;

// Create a table row and add cells to it
TableRow row = new TableRow();
row.AddCell(cell); // Add the first cell
row.AddCell(cell); // Add the second cell, duplicating to mimic a row with two identical cells

// Create a table and add the row to the table
Table table = new Table();
table.AddRow(row);

// Create and save a Word document using the table
WordDocument doc = new WordDocument(table);
doc.SaveAs("Document.docx"); // Saves the file to disk with the name Document.docx
Imports IronWord
Imports IronWord.Models

' Create a table cell with sample text
Private cell As New TableCell()
Private textRun As New TextRun("Sample text")

' Add text run to the cell as a paragraph
cell.AddContent(New Paragraph(textRun))

' Configure cell border style
Dim borderStyle As New BorderStyle With {
	.BorderColor = New IronColor(IronSoftware.Drawing.Color.Black),
	.BorderValue = IronWord.Models.Enums.BorderValues.Thick,
	.BorderSize = 5
}

' Set table borders
Dim tableBorders As New TableBorders With {
	.TopBorder = borderStyle,
	.RightBorder = borderStyle,
	.BottomBorder = borderStyle,
	.LeftBorder = borderStyle
}
cell.Borders = tableBorders

' Create a table row and add cells to it
Dim row As New TableRow()
row.AddCell(cell) ' Add the first cell
row.AddCell(cell) ' Add the second cell, duplicating to mimic a row with two identical cells

' Create a table and add the row to the table
Dim table As New Table()
table.AddRow(row)

' Create and save a Word document using the table
Dim doc As New WordDocument(table)
doc.SaveAs("Document.docx") ' Saves the file to disk with the name Document.docx
$vbLabelText   $csharpLabel

Dans l'exemple ci-dessus, nous avons ajouté un tableau à un document Word en utilisant des bordures.

Ajouter des images à un document Word

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

Il est possible d'ajouter des images à un document Word par programmation à l'aide d'IronWord, comme illustré dans le code ci-dessous :

using IronWord;
using IronWord.Models;

// Load a new document
WordDocument doc = new WordDocument();

// Configure and add image to the document
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg")
{
    Width = 200, // Set image width in pixels
    Height = 200 // Set image height in pixels
};
Paragraph paragraph = new Paragraph();
paragraph.AddImage(image); // Add image to paragraph
doc.AddParagraph(paragraph); // Add paragraph to the document

// Save the document as a .docx file
doc.SaveAs("save_document.docx"); // Saves the file to disk with the name save_document.docx
using IronWord;
using IronWord.Models;

// Load a new document
WordDocument doc = new WordDocument();

// Configure and add image to the document
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg")
{
    Width = 200, // Set image width in pixels
    Height = 200 // Set image height in pixels
};
Paragraph paragraph = new Paragraph();
paragraph.AddImage(image); // Add image to paragraph
doc.AddParagraph(paragraph); // Add paragraph to the document

// Save the document as a .docx file
doc.SaveAs("save_document.docx"); // Saves the file to disk with the name save_document.docx
Imports IronWord
Imports IronWord.Models

' Load a new document
Private doc As New WordDocument()

' Configure and add image to the document
Private image As New IronWord.Models.Image("SalesChart.jpg") With {
	.Width = 200,
	.Height = 200
}
Private paragraph As New Paragraph()
paragraph.AddImage(image) ' Add image to paragraph
doc.AddParagraph(paragraph) ' Add paragraph to the document

' Save the document as a .docx file
doc.SaveAs("save_document.docx") ' Saves the file to disk with the name save_document.docx
$vbLabelText   $csharpLabel

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

Licence (Essai Gratuit Disponible)

IronWord nécessite une licence d'utilisation. Obtenez une clé d'essai sur le site web d'Iron Software. Cette clé doit être placée dans le appsettings.json .

{
    "IronWord.LicenseKey": "IRONWORD.MYLICENSE.KEY.TRIAL"
}

Fournissez votre email pour obtenir une licence d'essai. Après avoir soumis votre adresse électronique, la clé vous sera envoyée par courriel.

Comment créer des documents Word sans Office Interop en C# : Figure 6 - Fenêtre contextuelle après l'envoi réussi d'un formulaire d'essai

Conclusion

La création de documents Word en C# à l'aide de la bibliothèque IronWord offre une méthode flexible et efficace pour générer des documents sans dépendre de Microsoft Office. Que vous ayez besoin de rédiger de simples lettres ou des rapports complexes avec tableaux et images, IronWord vous permet de le faire par programmation. 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 productives.

Et pour les développeurs qui recherchent une solution de manipulation de fichiers PDF pour travailler en parallèle avec leurs documents Word générés, ne cherchez pas plus loin qu'IronPDF , une autre bibliothèque C# produite par Iron Software.

Questions Fréquemment Posées

Comment puis-je créer des documents Word en C# sans utiliser Microsoft Office Interop ?

Vous pouvez créer des documents Word en C# sans utiliser Microsoft Office Interop en utilisant la bibliothèque IronWORD. Cette bibliothèque vous permet de générer, modifier et enregistrer des documents Word par programmation sans avoir besoin d'une installation de Microsoft Office.

Quels sont les avantages d'utiliser IronWORD par rapport à Microsoft Office Interop ?

IronWORD offre la flexibilité de fonctionner sur des plateformes non Windows comme Linux, où Microsoft Office Interop n'est pas disponible. Il élimine également la dépendance à l'installation de Microsoft Office, ce qui simplifie le processus de développement.

Comment commencer à créer un document Word avec IronWORD ?

Pour commencer à créer un document Word en utilisant IronWORD, installez d'abord la bibliothèque IronWORD via le gestionnaire de packages NuGet dans votre projet C#. Ensuite, utilisez l'API IronWORD pour construire et manipuler des documents Word par programmation.

Puis-je utiliser IronWORD avec les dernières versions de .NET ?

Oui, IronWORD est compatible avec diverses versions de .NET, y compris .NET 8, 7, 6, Framework, Core, et Azure, vous permettant de l'intégrer dans des applications C# modernes.

Comment puis-je ajouter du texte stylisé à un document Word avec IronWORD ?

IronWORD vous permet d'ajouter du texte stylé en utilisant les classes TextRun et TextStyle. Ces classes vous permettent d'appliquer des styles tels que le gras, l'italique et le soulignement à des segments de texte spécifiques dans votre document Word.

Est-il possible d'inclure des tableaux dans des documents Word en utilisant IronWORD ?

Oui, vous pouvez inclure des tables dans des documents Word en utilisant IronWORD. La bibliothèque vous permet de définir des tables avec des lignes et des cellules, et vous pouvez personnaliser leur apparence avec des bordures et d'autres styles.

Comment insérer des images dans un document Word en utilisant IronWORD ?

Pour insérer des images dans un document Word en utilisant IronWORD, vous pouvez utiliser la classe IronWord.Models.Image pour intégrer des images avec des dimensions spécifiées dans les paragraphes, améliorant ainsi le contenu visuel de votre document.

Y a-t-il une version d'essai d'IronWORD disponible pour l'évaluation ?

Oui, Iron Software offre une version d'essai gratuite d'IronWORD, que vous pouvez télécharger depuis leur site web. Cet essai vous permet d'évaluer les fonctionnalités et capacités de la bibliothèque avant de faire un achat.

Quelles autres bibliothèques de manipulation de documents Iron Software fournit-elle ?

En plus d'IronWORD, Iron Software fournit IronPDF, une bibliothèque pour manipuler les fichiers PDF. Ensemble, ces bibliothèques offrent des solutions complètes pour gérer à la fois les documents Word et PDF dans les applications C#.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite