Passer au contenu du pied de page
UTILISATION D'IRONWORD

Comment manipuler un document Word en utilisant C#

Microsoft a créé Word pour servir de traitement de texte. Initialement disponible sous le nom de Multi-Tool Word pour les systèmes Xenix, il a été introduit le 25 octobre 1983. Des versions ultérieures ont été développées pour une large gamme de systèmes d'exploitation, tels que SCO Unix (1990), Microsoft Windows (1989), Atari ST (1988), OS/2 (1989), AT&T UNIX PC (1985), IBM PC exécutant DOS (1983), Apple Macintosh exécutant le macOS classique (1985), macOS (2001), les navigateurs Web (2010), iOS (2014) et Android (2015). Wine peut être utilisé pour exécuter d'anciennes versions de Microsoft Word sous Linux.

Les versions commerciales de Word peuvent être concédées sous licence en tant qu'application autonome ou en tant que composant de Microsoft 365 , qui peut être acheté sous forme de licence perpétuelle ou dans le cadre d'un abonnement Microsoft 365. Dans cet article, nous manipulerons des documents Word en utilisant C# avec l'aide des assemblées Microsoft Interop et explorerons comment IronXL nous aide à éditer des documents Excel.

Comment manipuler un document Word à l'aide de C

  1. Créez un tout nouveau projet Visual Studio.
  2. Configurez la bibliothèque nécessaire pour lire les documents Word.
  3. Pour manipuler un document Word, chargez un fichier existant ou créez un nouveau fichier.
  4. Modifiez les données du document et analysez le fichier.
  5. Supprimez tous les objets créés.

Qu'est-ce que Microsoft Interop ?

Les programmes écrits en C# ou VB.NET peuvent créer ou ouvrir des documents Word (DOC, DOCX et RTF) grâce à l'interopérabilité Office pour Microsoft Word. Cependant, son utilisation dans des projets présente de nombreux inconvénients.

Nous aborderons dans cet article les problèmes fréquents que vous pourriez rencontrer lors de l'utilisation de Microsoft Office Interop (automatisation Word) depuis C# ou VB.NET.

Par exemple :

  • Chaque poste client requis pour l'automatisation des tâches de traitement de texte doit être équipé d'une licence Microsoft Word.
  • Sur chaque PC client, la même version de Microsoft Word doit être installée.
  • Word utilise quelques mégaoctets de RAM pour charger différents fichiers et DLL en arrière-plan lorsque l'automatisation est utilisée.
  • L'API Microsoft Word est accessible via un objet COM. Des problèmes peuvent survenir lors de l'appel d'un objet COM à partir de code managé, tels que des conversions de type, la nécessité d'un wrapper COM et une mauvaise intégration avec le framework .NET.

Créer un nouveau projet dans Visual Studio

Il est nécessaire de lancer Visual Studio et de créer un projet .NET avant d'utiliser la bibliothèque Interop. Visual Studio est compatible avec toutes les versions, bien que la plus récente soit recommandée. Selon vos besoins, vous pouvez soit développer un modèle de projet, soit une application ressemblant à Windows Forms. Dans ce cas, j'utiliserai l'application console par souci de simplicité.

Comment manipuler un document Word avec C# : Figure 1 - Création d'un nouveau projet Visual Studio

Configurer les détails du projet

Ensuite, veuillez indiquer le lieu et le nom du projet.

Comment manipuler un document Word avec C# : Figure 2 - Configuration du nouveau projet VS

Créez un nouveau fichier de projet à l'aide du framework .NET

À l'aide du menu déroulant Framework, vous pouvez choisir un framework .NET . Le framework .NET 4.7 sera utilisé pour ce projet. L'étape suivante consiste à appuyer sur le bouton " Créer ".

Une fois la solution générée par l'application, vous pouvez saisir le code et compiler ou exécuter le programme en accédant au fichier Program.cs.

Comment manipuler un document Word avec C# : Figure 3 - Nouveau fichier .cs de projet .NET

Maintenant que la bibliothèque Microsoft.Office.Interop.Word a été ajoutée, nous pouvons tester le code.

Installer la bibliothèque d'interopérabilité

La prochaine réparation nécessite l'installation de la bibliothèque Interop. Pour ce faire, saisissez la commande suivante dans la console du gestionnaire de packages NuGet :

Install-Package Microsoft.Office.Interop.Word

Comment manipuler un document Word avec C# : Figure 4 - Pour installer la bibliothèque IronXL, vous pouvez utiliser la console du gestionnaire de packages et saisir la commande suivante : " Install-Package IronXL.Excel "

Une autre façon de trouver le package " Interop " consiste à utiliser le gestionnaire de packages NuGet. Parmi tous les packages NuGet liés à l'interopérabilité, nous pouvons sélectionner le package requis à télécharger dans cette liste.

Comment manipuler un document Word avec C# : Figure 5 - Sélection de la bibliothèque Microsoft.Office.Interop.Word

Une fois que vous avez installé toutes les bibliothèques nécessaires, vous pouvez alors commencer à modifier les fichiers DOCX.

Manipuler des documents Word existants à l'aide d'Interop

Pour utiliser Microsoft Word, vous devez d'abord créer une instance de Microsoft.Office.Interop.Word.Application . Dans ce cas, la communication se ferait par le biais de documents Word. L'étape suivante consiste à créer une nouvelle instance de document Word en utilisant la propriété Documents de l'instance Microsoft.Office.Interop.Word.Application que nous venons de créer. Comme le montre l'extrait de code C# ci-dessous, cela nous permet de manipuler des documents Word par programmation :

using System;
using Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        try
        {
            // Create a new instance of Word Application
            var WordApp = new Microsoft.Office.Interop.Word.Application();
            // Open an existing document
            var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
            // Edit the content of the first paragraph
            WordDoc.Paragraphs[1].Range.Text = "New text here...";
            // Save the edited document
            WordDoc.SaveAs(@"d:/NewDemo.docx");
            // Close the document
            WordDoc.Close();
            // Quit the Word application
            WordApp.Quit();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
}
using System;
using Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        try
        {
            // Create a new instance of Word Application
            var WordApp = new Microsoft.Office.Interop.Word.Application();
            // Open an existing document
            var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
            // Edit the content of the first paragraph
            WordDoc.Paragraphs[1].Range.Text = "New text here...";
            // Save the edited document
            WordDoc.SaveAs(@"d:/NewDemo.docx");
            // Close the document
            WordDoc.Close();
            // Quit the Word application
            WordApp.Quit();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
}
Imports System
Imports Microsoft.Office.Interop.Word

Friend Class Program
	Shared Sub Main()
		Try
			' Create a new instance of Word Application
			Dim WordApp = New Microsoft.Office.Interop.Word.Application()
			' Open an existing document
			Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
			' Edit the content of the first paragraph
			WordDoc.Paragraphs(1).Range.Text = "New text here..."
			' Save the edited document
			WordDoc.SaveAs("d:/NewDemo.docx")
			' Close the document
			WordDoc.Close()
			' Quit the Word application
			WordApp.Quit()
		Catch ex As Exception
			Console.WriteLine(ex.ToString())
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Dans le code ci-dessus, nous pouvons modifier le document Word en C#. Nous créons d'abord une instance de l'application Word à l'aide d'Interop. La méthode Open est ensuite utilisée pour ouvrir un fichier Word existant et le convertir en un objet document. Nous pouvons alors accéder aux différentes propriétés et méthodes disponibles pour interagir avec le document. Dans cet exemple, nous mettons à jour le texte du premier paragraphe, en utilisant la collection Paragraphs et un index pour spécifier quel paragraphe modifier. Enfin, les modifications sont enregistrées avec SaveAs , et le document et l'application sont correctement fermés.

Bibliothèque IronXL : alternative à Interop

IronXL est une alternative à Microsoft Interop qui peut être utilisée dans les programmes .NET pour gérer les fichiers Excel. Alors que Microsoft Interop nécessite d'interagir avec Excel via les assemblys Interop, IronXL offre une méthode plus simple, efficace et puissante pour manipuler par programmation les fichiers Excel dans des contextes .NET.

L'utilisation d'IronXL au lieu de Microsoft Interop présente plusieurs avantages, tels que :

  • Performances et efficacité des ressources : Comparé à Microsoft Interop, qui dépend de l'installation de l'application Excel sur l'ordinateur, IronXL offre de meilleures performances et utilise moins de ressources car il n'est pas dépendant de l'application Excel.
  • Facilité d'utilisation et simplicité : IronXL fournit une API plus facile à utiliser qui simplifie la lecture, l'écriture et la manipulation des fichiers Excel sans les complications liées à Microsoft Interop.
  • Compatibilité et dépendances : IronXL élimine les dépendances et les problèmes de compatibilité pouvant survenir avec différentes versions d'Excel ou d'Office en ne nécessitant pas l'installation de Microsoft Excel sur l'ordinateur.
  • Indépendance de la plateforme : Contrairement à Microsoft Interop, qui peut être plus étroitement associé à des versions particulières de Microsoft Office, IronXL offre une plus grande flexibilité et une facilité de déploiement sur divers environnements et plateformes.

Pour les développeurs .NET qui doivent manipuler des fichiers Excel par programmation, IronXL est souvent une meilleure option en raison de sa facilité d'utilisation, de sa rapidité et de sa moindre dépendance aux installations de logiciels tiers. Le choix entre IronXL et Microsoft Interop pourrait toutefois être influencé par les spécificités du projet, l'infrastructure existante et le niveau d'expertise de l'utilisateur avec chaque bibliothèque.

Lorsque vous devez choisir entre ces options, gardez toujours à l'esprit les exigences de votre application. Cliquez sur ce lien pour en savoir plus sur la bibliothèque IronXL.

Installation de la bibliothèque IronXL

La bibliothèque IronXL étant nécessaire pour le prochain correctif, veuillez l'installer. Pour terminer, ouvrez la console du gestionnaire de packages NuGet et saisissez la commande suivante :

Install-Package IronWord

Comment manipuler un document Word avec C# : Figure 6 - Installation d'IronXL à l'aide de la commande console

Vous pouvez également rechercher le package " IronXL " via le gestionnaire de packages NuGet. Dans la liste des packages NuGet associés à IronXL, vous pouvez sélectionner celui que vous souhaitez télécharger.

Comment manipuler un document Word avec C# : Figure 7 - Installation du package IronXL.Excel par navigation

Modification de documents Excel avec IronXL

Les données peuvent être exportées aux formats XLSX ou XLS en quelques lignes de code seulement. L'exemple de code source suivant montre comment exporter des données d'un fichier Excel vers un tableau simple :

using IronXL;

class Program
{
    static void Main()
    {
        // Load an existing Excel file
        var workbook = WorkBook.Load("Demo file.xlsx");
        // Access the first sheet or the sheet by name
        var ws = workbook.GetWorkSheet("Sheet1");
        // Read a value from a cell and output it to the console
        string address_val = ws["A1"].ToString();
        Console.WriteLine(address_val);
        // Modify a cell's value
        ws["A2"].Value = "Hello World";
        // Save the workbook to different formats
        workbook.SaveAs("export.xlsx");
        workbook.SaveAs("export.xls");
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load an existing Excel file
        var workbook = WorkBook.Load("Demo file.xlsx");
        // Access the first sheet or the sheet by name
        var ws = workbook.GetWorkSheet("Sheet1");
        // Read a value from a cell and output it to the console
        string address_val = ws["A1"].ToString();
        Console.WriteLine(address_val);
        // Modify a cell's value
        ws["A2"].Value = "Hello World";
        // Save the workbook to different formats
        workbook.SaveAs("export.xlsx");
        workbook.SaveAs("export.xls");
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Load an existing Excel file
		Dim workbook = WorkBook.Load("Demo file.xlsx")
		' Access the first sheet or the sheet by name
		Dim ws = workbook.GetWorkSheet("Sheet1")
		' Read a value from a cell and output it to the console
		Dim address_val As String = ws("A1").ToString()
		Console.WriteLine(address_val)
		' Modify a cell's value
		ws("A2").Value = "Hello World"
		' Save the workbook to different formats
		workbook.SaveAs("export.xlsx")
		workbook.SaveAs("export.xls")
		workbook.WorkSheets(0).SaveAs("export.xls")
	End Sub
End Class
$vbLabelText   $csharpLabel

L'exemple précédent charge un fichier Excel existant en appelant la fonction Load , qui prend en argument le chemin d'accès et le nom du fichier. L'importation du fichier dans l'objet WorkBook est maintenant terminée. Les feuilles de calcul Excel sont ensuite chargées à l'aide de GetWorkSheet , qui nous permet de charger la feuille de calcul en utilisant son nom. L'adresse Excel a ensuite été utilisée pour lire la valeur. Pour en savoir plus sur la lecture des fichiers Excel, cliquez ici .

Nous pouvons modifier les valeurs de la feuille Excel en utilisant la même adresse Excel. Le document Excel peut être enregistré au format XLSX ou XLS en utilisant la fonction SaveAs proposée par l'objet WorkBook . Ce procédé permet d'enregistrer l'intégralité du fichier au format choisi.

Comment manipuler un document Word avec C# : Figure 8 - Sortie console

De plus, nous pouvons sélectionner une feuille de calcul Excel spécifique en utilisant sa valeur d'index ou en la référençant par son nom. Ensuite, nous pouvons exporter les données de la feuille de calcul Excel vers un autre fichier en utilisant l'option SaveAs . Cliquez sur ce lien pour en savoir plus sur la mise en forme et l'exportation des fichiers Excel.

Conclusion

IronXL est l'un des modules complémentaires les plus populaires pour Excel. Il ne dépend d'aucune bibliothèque externe supplémentaire. Il n'est pas nécessaire d'installer Microsoft Excel car il est autonome. Il fonctionne via une multitude de canaux. Cela contraste avec la bibliothèque Interop qui doit analyser le fichier à l'aide de bibliothèques supplémentaires pour modifier les documents Word.

IronXL est une solution complète pour tout processus de programmation utilisant des documents Microsoft Excel. Calculs, tri de chaînes de caractères ou de nombres, élagage, ajout, recherche et remplacement, fusion et défusion, et stockage de fichiers ne sont que quelques exemples des nombreuses opérations disponibles. Non seulement les données des feuilles de calcul peuvent être validées, mais vous pouvez également créer de nouvelles formes de données cellulaires. Il facilite la lecture et l'écriture de fichiers ainsi que la gestion des données Excel.

Lors de sa première sortie, IronXL coûtait $799 . Les clients peuvent également opter pour un abonnement annuel afin de recevoir les mises à jour logicielles et l'assistance. Moyennant un supplément, IronXL assure la protection contre la redistribution non autorisée. Rendez-vous sur la page des licences IronXL. Pour en savoir plus sur les produits Iron Software, cliquez ici .

Questions Fréquemment Posées

Comment puis-je manipuler des documents Word en utilisant C#?

Pour manipuler des documents Word en utilisant C#, vous pouvez utiliser la bibliothèque Microsoft.Office.Interop.Word. Cela implique de créer une instance de l'application Word, d'ouvrir le document, de faire des modifications et de sauvegarder le document de manière programmée.

Quelles sont les limitations de l'utilisation de Microsoft Interop pour la manipulation de documents Word?

Les limitations de l'utilisation de Microsoft Interop incluent la nécessité d'une version sous licence de Microsoft Word sur chaque PC client, des problèmes potentiels de compatibilité entre versions, et une consommation de mémoire accrue en raison des processus en arrière-plan.

Comment puis-je configurer un projet C# dans Visual Studio pour travailler avec des documents Word?

Dans Visual Studio, vous pouvez configurer un nouveau projet en sélectionnant une application console, en configurant les détails nécessaires du projet, et en vous assurant que la bonne version du .NET Framework est choisie. Il vous faudra ensuite ajouter des références à Microsoft.Office.Interop.Word via le gestionnaire de packages NuGet.

Quelles sont les différences entre IronXL et Microsoft Interop pour la gestion des fichiers Excel?

IronXL offre des avantages par rapport à Microsoft Interop, tels que ne pas nécessiter l'installation d'Excel, offrir de meilleures performances, et avoir une API plus simple pour la manipulation de fichiers Excel. Il élimine également les problèmes de compatibilité liés à la méthode Interop.

Comment puis-je installer IronXL dans mon projet .NET ?

Pour installer IronXL dans votre projet .NET, ouvrez la console du gestionnaire de packages NuGet dans Visual Studio et exécutez la commande Install-Package IronXL.Excel. Vous pouvez également rechercher IronXL dans l'interface utilisateur du gestionnaire de packages NuGet et l'installer directement.

Comment puis-je éditer des documents Excel en utilisant IronXL en C#?

En utilisant IronXL, vous pouvez éditer des documents Excel en les chargeant avec WorkBook.Load, en accédant à des feuilles de calcul spécifiques, en modifiant les valeurs des cellules, et en sauvegardant le classeur en utilisant les méthodes fournies par les objets WorkBook et WorkSheet.

Quels sont les avantages d'utiliser IronXL pour la manipulation de fichiers Excel ?

IronXL fournit des avantages tels que des performances améliorées, une facilité d'utilisation, et une indépendance de la plateforme. Il ne requiert pas l'installation d'Excel, ce qui élimine les problèmes de dépendance et permet une intégration transparente dans les applications .NET.

Puis-je automatiser des tâches de document Word sans utiliser Microsoft Interop?

Oui, diverses bibliothèques tierces offrent des alternatives à Microsoft Interop pour automatiser les tâches de document Word, proposant des API plus simples et éliminant le besoin d'installation de Microsoft Word.

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