IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ C#Consultez toutes les FAQ

Nombre d'auteurs : 41, nombre de questions : 274, dernière mise à jour : 27 mai 2018  Ajouter une question

 

Cette FAQ a été réalisée pour répondre aux questions les plus fréquemment posées concernant C# sur le forum Développement DotNET

Je tiens à souligner qu'elle ne garantit en aucun cas que les informations qu'elle contient sont correctes ; les auteurs font le maximum, mais l'erreur est humaine. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci .

Sur ce, je vous souhaite une bonne lecture.

Commentez cette FAQ : Commentez

SommaireOfficeWord (4)
précédent sommaire suivant
 

L'exemple suivant montre comment lire (par automation) le document paragraphe par paragraphe.

Inclure l'espace de nom : Microsoft.Office.Interop.Word (ou une variante. Voir : Comment piloter une application Office dans mon application .NET par automation ? )

Code c# : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  
object filePath = @"C:\Document1.doc"; 
object typeMissing = Type.Missing; 
_Application application = new ApplicationClass(); 
Documents documents = application.Documents; 
  
_Document document = documents.Open(ref filePath, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing); 
  
foreach (Paragraph par in document.Content.Paragraphs) 
{ 
    Console.WriteLine(par.Range.Text); 
    Console.WriteLine(); 
} 
  
document.Close(ref typeMissing, ref typeMissing, ref typeMissing); 
application.Quit(ref typeMissing, ref typeMissing, ref typeMissing);
Remarque : pour les méthodes Open et Close, le nombre d'argument peut varier en fonction de la version de librairie utilisée.

Mis à jour le 8 mars 2010 Skalp

L'exemple ci-dessous montre comment lire un document Word au format Open XML, paragraphe par paragraphe.

Il est nécessaire d'ajouter les références suivantes dans votre projet :

  • DocumentFormat.OpenXML ;
  • WindowsBase


Code C# : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using DocumentFormat.OpenXml; 
using DocumentFormat.OpenXml.Packaging; 
using DocumentFormat.OpenXml.Wordprocessing; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
  
namespace TestOpenXMLSDK 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            string filePath = @"C:\Chemin\vers\fichier\Word.docx"; 
  
            WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(filePath, true); 
            Body body = wordprocessingDocument.MainDocumentPart.Document.Body; 
            IEnumerable<Paragraph> paragraphs = body.OfType<Paragraph>(); 
  
            foreach(Paragraph p in paragraphs) 
            { 
                Console.WriteLine(p.InnerText); 
            } 
  
            Console.ReadLine(); 
        } 
    } 
}

Mis à jour le 27 mai 2018 François DORIN

L'exemple suivant montre comment ajouter (par automation) un paragraphe au document contenant le texte « Le club Developpez.com est le principal site d'entraide des informaticiens francophones. » à la fin document.

Inclure l'espace de nom : Microsoft.Office.Interop.Word (ou une variante. Voir : Comment piloter une application Office dans mon application .NET par automation ? )

Code c# : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
object filePath = @"C:\Document1.doc"; 
object typeMissing = Type.Missing; 
_Application application = new ApplicationClass(); 
Documents documents = application.Documents; 
  
_Document document = documents.Open(ref filePath, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing); 
  
document.Paragraphs.Last.Range.InsertParagraphAfter(); // Ajouter un nouveau paragraphe, car c'est ce dernier qui est modifié. 
Paragraph paragraph = document.Paragraphs[document.Paragraphs.Count - 1]; 
paragraph.Range.Text = "Le club Developpez.com est le principal site d'entraide des informaticiens francophones."; 
  
document.Save(); 
document.Close(ref typeMissing, ref typeMissing, ref typeMissing); 
application.Quit(ref typeMissing, ref typeMissing, ref typeMissing);
Remarque : pour les méthodes Open et Close, le nombre d'argument peut varier en fonction de la version de librairie utilisée.

Mis à jour le 8 mars 2010 Skalp

L'exemple ci-dessous montre comment modifier (par automation) les couleurs des bordures et du fond d'un paragraphe.

Inclure l'espace de nom : Microsoft.Office.Interop.Word (ou une variante. Voir : Comment piloter une application Office dans mon application .NET par automation ? )

Code c# : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
object filePath = @"C:\Document1.doc"; 
object typeMissing = Type.Missing; 
_Application application = new ApplicationClass(); 
Documents documents = application.Documents; 
  
_Document document = documents.Open(ref filePath, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing, 
                                    ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing); 
  
document.Paragraphs.Last.Range.InsertParagraphAfter(); // Ajouter un nouveau paragraphe, car c'est ce dernier qui est modifié. 
Paragraph paragraph = document.Paragraphs[document.Paragraphs.Count - 1]; 
paragraph.Range.Text = "Le club Developpez.com est le principal site d'entraide des informaticiens francophones."; 
paragraph.Format.Borders[WdBorderType.wdBorderLeft].Color = WdColor.wdColorRed; 
paragraph.Format.Borders[WdBorderType.wdBorderLeft].LineStyle = WdLineStyle.wdLineStyleSingle; 
paragraph.Format.Borders[WdBorderType.wdBorderLeft].LineWidth = WdLineWidth.wdLineWidth050pt; 
paragraph.Format.Borders[WdBorderType.wdBorderRight].Color = WdColor.wdColorRed; 
paragraph.Format.Borders[WdBorderType.wdBorderRight].LineStyle = WdLineStyle.wdLineStyleSingle; 
paragraph.Format.Borders[WdBorderType.wdBorderRight].LineWidth = WdLineWidth.wdLineWidth050pt; 
paragraph.Format.Borders[WdBorderType.wdBorderTop].Color = WdColor.wdColorRed; 
paragraph.Format.Borders[WdBorderType.wdBorderTop].LineStyle = WdLineStyle.wdLineStyleSingle; 
paragraph.Format.Borders[WdBorderType.wdBorderTop].LineWidth = WdLineWidth.wdLineWidth050pt; 
paragraph.Format.Borders[WdBorderType.wdBorderBottom].Color = WdColor.wdColorRed; 
paragraph.Format.Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleSingle; 
paragraph.Format.Borders[WdBorderType.wdBorderBottom].LineWidth = WdLineWidth.wdLineWidth050pt; // Définir la bordure à rouge (défnir le style de trait est obligatoire). 
paragraph.Format.Shading.BackgroundPatternColor = WdColor.wdColorGreen; // Définir la couleur de fond à vert. 
  
document.Save(); 
document.Close(ref typeMissing, ref typeMissing, ref typeMissing); 
application.Quit(ref typeMissing, ref typeMissing, ref typeMissing);
Pour plus d'informations sur le modèle objet Word, consulter : Où puis-je trouver de la documentation sur l'automation Office ?

Remarque : pour les méthodes Open et Close, le nombre d'argument peut varier en fonction de la version de librairie utilisée.

Mis à jour le 8 mars 2010 Skalp

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.