using IronWord;
using IronWord.Models;
// Load docx
WordDocument doc = new WordDocument("document.docx");
// Add text
doc.AddText("Add text using IronWord");
// Export docx
doc.SaveAs("save_document.docx");
C# Editer Word (Tutoriel du développeur d'exemples de code)
Regan Pun
novembre 14, 2023
Partager:
La création, l'édition et la gestion de documents Word sont des exigences fréquentes pour de nombreuses applications. Bien qu'il existe plusieurs façons de créer et de modifier un document Word en C#, l'une des méthodes les plus puissantes consiste à utiliser les services Microsoft Interop. Grâce à cet outil, vous pouvez manipuler des documents Word de manière programmatique avec une grande facilité.
Modifier des documents Word et DOCX
Télécharger la bibliothèque C# pour éditer les documents Word et DOCX
Avant de configurer l'environnement et de commencer à travailler avec le code, assurez-vous que vous remplissez les conditions préalables suivantes :
Visual Studio : Assurez-vous d'avoir Visual Studio installé sur votre machine. Si ce n'est pas le cas, téléchargez-le et installez-le depuis le site officiel de Microsoft.
Microsoft Word : Étant donné que nous utilisons Microsoft Interop, vous devez avoir MS Word installé sur votre ordinateur. Le service Interop s'interface avec l'application Microsoft Word installée sur votre machine.
Connaissances de base en C# Comprendre les bases du C#
.NET Framework : Assurez-vous que votre Visual Studio prend en charge le .NET Framework, car notre application sera basée dessus.
Mise en place de l'environnement
Commencez par ouvrir l'application Visual Studio. Une fois ouvert, vous serez accueilli par un écran de bienvenue.
1. Créer une nouvelle application de la console du Framework .NET
Cliquez sur "Créer un nouveau projet".
Entrez "Console App (.NET Framework)" dans la boîte de recherche.
Dans les résultats, sélectionnez "Console App (.NET Framework)" et cliquez sur le bouton "Suivant".
Donnez un nom à votre projet, puis cliquez sur le bouton "Créer".
Après ces étapes, Visual Studio génère pour vous une nouvelle application de console Framework .NET. Dans le fichier Program.cs, vous trouverez un modèle de base avec une méthode Main, qui est le point d'entrée pour les applications console.
2. Installez Microsoft.Office.Interop.Word en utilisant le gestionnaire de packages NuGet
NuGet est un gestionnaire de paquets pour .NET, intégré à Visual Studio. Voici comment vous pouvez l'utiliser pour installer le package Microsoft.Office.Interop.Word :
Dans Visual Studio, allez dans le menu "Outils".
Sélectionnez "NuGet Package Manager" puis "Manage NuGet Packages for Solution...".
Dans la fenêtre NuGet, cliquez sur l'onglet "Browse".
Dans la boîte de recherche, tapez Microsoft.Office.Interop.Word et appuyez sur Entrée.
Dans les résultats de recherche, sélectionnez le package Microsoft.Office.Interop.Word.
Sur le côté droit, assurez-vous que votre projet d'application console est coché, puis cliquez sur le bouton "Installer".
Visual Studio va maintenant installer le paquetage et ajouter une référence à celui-ci dans votre projet. Ce package contient les assemblages et outils nécessaires pour interagir avec MS Word depuis votre application C#.
Présentation d'IronWord : Une alternative supérieure à Interop
Bien qu'Interop offre des possibilités puissantes pour travailler avec Word et Excel, il a ses limites. IronWord est une bibliothèque polyvalente optimisée pour les développeurs .NET. IronWord offre une expérience plus fluide qu'Interop, en particulier pour les tâches d'édition de documents Word. Il garantit non seulement la compatibilité et la performance, mais simplifie également les tâches complexes grâce à des méthodes intuitives. Pour faciliter la comparaison, je fournirai des extraits de code IronWord pour chaque cas d'utilisation après MS Word, en utilisant la version IronWord 2024.1.2.
Ouverture d'un document Word existant
Il arrive souvent que vous deviez modifier des documents Word existants. L'exemple suivant montre comment procéder en C# :
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Open(@"path_to_your_document.docx");
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Open(@"path_to_your_document.docx");
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
Dim WordDoc = WordApp.Documents.Open("path_to_your_document.docx")
$vbLabelText $csharpLabel
Dans le code ci-dessus, remplacez path_to_your_document.docx par le chemin vers votre fichier docx.
Utilisation d'IronWord
Ouvrez un document Word à l'aide d'IronWord.
WordDocument doc = new WordDocument(@"path_to_your_document.docx");
WordDocument doc = new WordDocument(@"path_to_your_document.docx");
Dim doc As New WordDocument("path_to_your_document.docx")
$vbLabelText $csharpLabel
Création d'un nouveau document Word
Pour créer des documents Word à partir de zéro :
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Add();
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Add();
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
Dim WordDoc = WordApp.Documents.Add()
$vbLabelText $csharpLabel
Cet extrait de code crée un nouveau document Word que vous pouvez rédiger et modifier à l'aide de C#.
Utilisation d'IronWord
WordDocument doc = new WordDocument();
WordDocument doc = new WordDocument();
Dim doc As New WordDocument()
$vbLabelText $csharpLabel
Utilisation de C# ;
Ajouter du texte au document Word
Pour ajouter un nouveau paragraphe de texte :
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
WordDoc.Paragraphs.Add()
WordDoc.Paragraphs (1).Range.Text = "This is the first paragraph."
$vbLabelText $csharpLabel
La méthode Paragraphs.Add() ajoute un nouveau paragraphe au document Word et la propriété Range.Text lui attribue un nouveau texte.
Utilisation d'IronWord
doc.AddText("Add text using IronWord");
doc.AddText("Add text using IronWord");
doc.AddText("Add text using IronWord")
$vbLabelText $csharpLabel
Modification d'un texte existant
Pour ce tutoriel, changeons le premier paragraphe :
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
WordDoc.Paragraphs (1).Range.Text = "This is the edited first paragraph."
$vbLabelText $csharpLabel
Vous pouvez également ajouter et modifier d'autres éléments dans le document Word en utilisant des méthodes similaires.
Utilisation d'IronWord
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
doc.Paragraphs (0).TextRuns (0).Text = "This is the edited first paragraph."
$vbLabelText $csharpLabel
Sauvegarde et fermeture du document
Une fois que vous avez effectué les modifications souhaitées :
Remplacez path_where_you_want_to_save.docx par le chemin souhaité.
Utilisation d'IronWord
doc.SaveAs(@"path_where_you_want_to_save.docx");
doc.SaveAs(@"path_where_you_want_to_save.docx");
doc.SaveAs("path_where_you_want_to_save.docx")
$vbLabelText $csharpLabel
Code complet et exemple
Mettons tout cela bout à bout. Voici un exemple de code complet démontrant comment ouvrir un document Word existant, le modifier, puis enregistrer les changements :
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Create a new Word document
var WordDoc = WordApp.Documents.Add();
// Add new text
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
// Edit the first paragraph
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
// Save and close
WordDoc.SaveAs(@"path_where_you_want_to_save.docx");
WordDoc.Close();
WordApp.Quit();
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Create a new Word document
var WordDoc = WordApp.Documents.Add();
// Add new text
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
// Edit the first paragraph
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
// Save and close
WordDoc.SaveAs(@"path_where_you_want_to_save.docx");
WordDoc.Close();
WordApp.Quit();
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
' Create a new Word document
Dim WordDoc = WordApp.Documents.Add()
' Add new text
WordDoc.Paragraphs.Add()
WordDoc.Paragraphs (1).Range.Text = "This is the first paragraph."
' Edit the first paragraph
WordDoc.Paragraphs (1).Range.Text = "This is the edited first paragraph."
' Save and close
WordDoc.SaveAs("path_where_you_want_to_save.docx")
WordDoc.Close()
WordApp.Quit()
$vbLabelText $csharpLabel
Utilisation d'IronWord
L'exemple de code complet comparé à MS Word. IronWord utilise des extraits de code concis pour éditer les fichiers DOCX.
// Create an empty Word document
WordDocument doc = new WordDocument();
// Add new text
doc.AddText("This is the first paragraph.");
// Edit text
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
// Export docx
doc.SaveAs(@"path_where_you_want_to_save.docx");
// Create an empty Word document
WordDocument doc = new WordDocument();
// Add new text
doc.AddText("This is the first paragraph.");
// Edit text
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
// Export docx
doc.SaveAs(@"path_where_you_want_to_save.docx");
' Create an empty Word document
Dim doc As New WordDocument()
' Add new text
doc.AddText("This is the first paragraph.")
' Edit text
doc.Paragraphs (0).TextRuns (0).Text = "This is the edited first paragraph."
' Export docx
doc.SaveAs("path_where_you_want_to_save.docx")
$vbLabelText $csharpLabel
Conclusion
Dans le domaine de la manipulation des documents Word et Excel au sein des applications .NET, les choix sont nombreux. Alors que les services Interop de Microsoft ont été une référence pour beaucoup, l'émergence de solutions comme IronWord signifie une évolution vers des outils plus efficaces et plus conviviaux.
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.
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier