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
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); |
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(); } } } |
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); |
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); |
Remarque : pour les méthodes Open et Close, le nombre d'argument peut varier en fonction de la version de librairie utilisée.
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 çaLes 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.