UTILISATION D'IRONWORD

Comment manipuler un document Word à l'aide de C#

Publié décembre 24, 2023
Partager:

Introduction

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 un large éventail de systèmes d'exploitation, tels que SCO Unix(1990)microsoft Windows(1989), Atari ST(1988)oS/2(1989)aT&T UNIX PC(1985)pC IBM fonctionnant sous DOS(1983)macintosh d'Apple fonctionnant sous macOS classique(1985), macOS(2001)navigateurs web(2010), iOS(2014)et Android(2015). Wine peut être utilisé pour exécuter les anciennes versions de Microsoft Word sur Linux.

Les versions commerciales de Word peuvent faire l'objet d'une licence en tant qu'application autonome ou en tant que composant d'un système de gestion de l'informationMicrosoft 365qui peut être acheté en tant que licence perpétuelle ou dans le cadre d'un abonnement à Microsoft 365. Dans cet article, nous manipulerons des documents Word en C# à l'aide des assemblages Microsoft Interop et nous verrons 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. Mettre en place 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. Modifier les données du document et analyser le fichier.

  5. Se débarrasser de 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) avec le bureauInteropérabilité pour Microsoft Word. Cependant, il présente de nombreux inconvénients lorsqu'il est utilisé dans des projets.

Nous aborderons les problèmes fréquents que vous pouvez rencontrer lors de l'utilisation de Microsoft Office Interop(Automatisation des mots) à partir de C# ou de VB.NET dans cet article.

Par exemple :

  • Chaque PC client nécessaire à l'automatisation des mots doit être équipé d'une licence pour Microsoft Word.
  • La même version de Microsoft Word doit être installée sur le PC de chaque client.
  • Word utilise quelques mégaoctets de mémoire vive 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 d'un code géré, tels que des conversions de type, la nécessité d'un wrapper COM et une mauvaise intégration du Framework .NET.

Création d'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 n'importe quelle version, mais il est conseillé d'utiliser la plus récente. En fonction de vos besoins, vous pouvez développer un modèle de projet ou une application qui ressemble à Windows Forms. Pour des raisons de simplicité, j'utiliserai ici l'application Console.

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

Configurer les détails du projet

Ensuite, indiquez le lieu et le nom du projet.

Comment manipuler un document Word à l'aide de C# : Figure 2 - Configuration du nouveau projet VS

Créer un nouveau fichier de projet à l'aide du Framework .NET

Le menu déroulant Cadre vous permet de choisir un cadre de travailframework .NET. Le Framework .NET 4.7 sera utilisé pour ce projet. L'action suivante consiste à appuyer sur le bouton "Créer".

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

Comment manipuler un document Word à l'aide de C# : Figure 3 - Nouveau fichier .cs du projet .NET

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

Installer la bibliothèque interop

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

:InstallCmd: Install-Package Microsoft.Office.Interop.Word

Comment manipuler un document Word à l'aide de C# : Figure 4 - Pour installer la bibliothèque IronXL, vous pouvez utiliser la console du gestionnaire de paquets et entrer la commande suivante : Install-Package IronXL.Excel

Une autre façon de trouver le paquetage "Interop" est d'utiliser le gestionnaire de paquets NuGet. Parmi tous les paquets NuGet liés à Interop, nous pouvons sélectionner le paquet requis à télécharger à partir de cette liste.

Comment manipuler un document Word à l'aide de 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 commencer à éditer 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. La communication de documents Word aurait lieu dans ce cas. 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 de manière programmatique

using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
Imports System
Imports System.Data
Imports Microsoft.Office.Interop.Word
Try
	Dim WordApp = New Microsoft.Office.Interop.Word.Application()
	Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
	WordDoc.Paragraphs (1).Range.Text = "New text here..."
	WordDoc.SaveAs("d:/NewDemo.docx")
	WordDoc.Close()
	WordApp.Quit()
Catch ex As Exception
	Console.WriteLine(ex.ToString())
End Try
VB   C#

Dans le code ci-dessus, nous sommes en mesure de modifier le document Word en C#. Tout d'abord, nous créons un objet item pour le traitement de texte utilisé par Interop. À l'aide de l'objet créé, qui possède une méthode open, nous pouvons transmettre le nom du fichier Word existant. Il nous aide à convertir le fichier en un objet documentaire.

En utilisant l'objet document, nous pouvons obtenir tous les processus disponibles liés au document Word existant. Ensuite, en utilisant l'objet paragraphes, nous obtenons tout le contenu disponible dans les fichiers DOCX. En utilisant le tableau, nous pouvons remplacer le texte de chaque paragraphe par les paragraphes spécifiques en les passant dans le tableau. Ensuite, nous pouvons les enregistrer dans de nouveaux documents MS Word en tant que fichier DOCX. Nous pouvons également créer des documents Word en utilisant Interop.

La bibliothèque IronXL, une alternative à Interop

IronXL est une alternative à Microsoft Interop qui peut être utilisée dans les programmes .NET pour traiter les fichiers Excel. Alors que Microsoft Interop exige d'interagir avec Excel par l'intermédiaire des assemblages Interop, IronXL offre une méthode plus directe, plus efficace et plus puissante pour manipuler par programme les fichiers Excel dans des contextes .NET.

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

  • Performance et efficacité des ressources : Comparé à Microsoft Interop, qui dépend de l'installation de l'application Excel sur l'ordinateur, IronXL est plus performant et utilise moins de ressources car il ne dépend pas 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 à l'interopérabilité de Microsoft.
  • Compatibilité et dépendance : IronXL élimine les dépendances et les problèmes de compatibilité qui peuvent survenir avec les 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 plate-forme : Contrairement à Microsoft Interop, qui peut être plus étroitement associé à des versions particulières de Microsoft Office, IronXL offre une plus grande flexibilité et une plus grande facilité de déploiement dans divers environnements et plates-formes.

    Pour les développeurs .NET qui doivent utiliser 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 à l'égard de l'installation de logiciels tiers. Le choix entre IronXL et Microsoft Interop pourrait toutefois être influencé par les particularités du projet, l'infrastructure existante et le niveau d'expertise de l'utilisateur avec chaque bibliothèque.

    Lorsque vous choisissez entre ces options, gardez toujours à l'esprit les exigences de votre application. Vérifier la visite de ce sitelien 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, installez-la. Pour terminer, ouvrez la console du gestionnaire de paquets NuGet et tapez la commande suivante :

Install-Package IronWord

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

La recherche du paquetage "IronXL" via le gestionnaire de paquets NuGet est une option supplémentaire. À partir de cette liste de tous les paquets NuGet liés à IronXL, nous pouvons sélectionner celui que nous devons télécharger.

Comment manipuler un document Word à l'aide de C# : Figure 7 - Installation du paquetage `IronXL.Excel` par navigation

Édition de documents Excel à l'aide d'IronXL

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

var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
Dim workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx")
Dim ws As WorkSheet = workbook.GetWorkSheet("Sheet1")
Dim address_val As String = ws ("A1").ToString()
console.writeline(address_val)
ws ("A2").Value = "Hello World"
workbook.SaveAs("export.xlsx")
'or
workbook.SaveAs("export.xls")
'or
workbook.WorkSheets (0).SaveAs("export.xls")
VB   C#

L'exemple précédent charge un fichier Excel qui existe déjà en appelant la fonction LoadExcel, qui prend un argument pour le chemin 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 le nom de la feuille. L'adresse Excel a ensuite été utilisée pour lire la valeur. Pour en savoir plus sur la lecture des fichiers Excel, cliquez surici.

Nous pouvons modifier les valeurs de la feuille Excel en utilisant la même URL Excel. Le document Excel peut être enregistré en tant que fichier XLSX ou XLS en utilisant la fonction SaveAs offerte par l'objet 'Workbook'. Ce processus permet d'enregistrer l'ensemble du fichier dans le format choisi.

Comment manipuler un document Word à l'aide de C# : Figure 8 - Sortie de la console

En outre, nous pouvons choisir une feuille de calcul Excel donnée en utilisant sa valeur d'index ou en la désignant 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 icilien pour en savoir plus sur le formatage et l'exportation de fichiers Excel.

Conclusion

IronXL est l'un des modules complémentaires les plus populaires pour Excel. Il ne s'appuie sur aucune bibliothèque externe supplémentaire. Il n'est pas nécessaire d'installer Microsoft Excel car il est autonome. Elle opère par le biais d'une multitude de canaux. Cela contraste avec la bibliothèque Interop qui doit analyser le fichier en utilisant des bibliothèques supplémentaires pour éditer les documents Word.

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

Lorsque IronXL a été lancé, il coûtait $749. Les clients peuvent également opter pour un abonnement d'un an afin de bénéficier des mises à jour du logiciel et de l'assistance. Moyennant paiement, IronXL offre une sécurité contre la redistribution non autorisée. Accéder à la licence IronXLpage. Pour en savoir plus sur les produits d'Iron Software, consultez le site suivantici.

< PRÉCÉDENT
Comment lire un fichier Word à l'aide de C#
SUIVANT >
Comment créer un document Word en C#