Comment : utiliser des arguments nommés et facultatifs dans la programmation Office (Guide de programmation C#)
Les arguments nommés et facultatifs, qui ont été introduits dans Visual C# 2010, rendent la programmation en C# plus pratique, tout en améliorant sa flexibilité et sa lisibilité. En outre, ces fonctionnalités facilitent considérablement l'accès aux interfaces COM telles que les API d'automation de Microsoft Office.
Dans l'exemple suivant, la méthode ConvertToTable comporte seize paramètres qui représentent les caractéristiques d'un tableau, telles que le nombre de colonnes et de lignes, la mise en forme, les bordures, les polices et les couleurs.Les seize paramètres sont optionnels car, le plus souvent, vous ne souhaitez pas spécifier de valeurs particulières pour chacun d'eux.Toutefois, sans les arguments nommés et facultatifs, une valeur ou une valeur d'espace réservé doit être fournie pour chaque paramètre.Avec les arguments nommés et facultatifs, vous pouvez spécifier des valeurs uniquement pour les paramètres requis par votre projet.
Ces procédures nécessitent que Microsoft Office Word soit installé sur votre ordinateur.
[!REMARQUE]
Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.
Pour créer une application console
Démarrez Visual Studio.
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Dans le volet Catégories de modèles, développez Visual C#, puis cliquez sur Windows.
Vérifiez en haut du volet Modèles que .NET Framework 4 figure dans la zone Framework cible.
Dans le volet Modèles, cliquez sur Application console.
Tapez un nom pour votre projet dans le champ Nom.
Cliquez sur OK.
Le nouveau projet s'affiche dans l'Explorateur de solutions.
Pour ajouter une référence
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, puis cliquez sur Ajouter une référence.La boîte de dialogue Ajouter une référence s'affiche.
Dans la page .NET, sélectionnez Microsoft.Office.Interop.Word dans la liste Nom du composant.
Cliquez sur OK.
Pour ajouter les directives using nécessaires
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier Program.cs, puis cliquez sur Afficher le code.
Ajoutez les directives using suivantes au début du fichier de code.
using Word = Microsoft.Office.Interop.Word;
Pour afficher du texte dans un document Word
Dans la classe Program de Program.cs, ajoutez la méthode suivante pour créer une application Word et un document Word.La méthode Add comporte quatre paramètres optionnels.Cet exemple utilise leur valeur par défaut.Par conséquent, aucun argument n'est nécessaire dans l'instruction appelante.
static void DisplayInWord() { var wordApp = new Word.Application(); wordApp.Visible = true; // docs is a collection of all the Document objects currently // open in Word. Word.Documents docs = wordApp.Documents; // Add a document to the collection and name it doc. Word.Document doc = docs.Add(); }
Ajoutez le code suivant à la fin de la méthode pour définir l'emplacement où le texte doit être affiché dans le document et le texte à afficher.
// Define a range, a contiguous area in the document, by specifying // a starting and ending character position. Currently, the document // is empty. Word.Range range = doc.Range(0, 0); // Use the InsertAfter method to insert a string at the end of the // current range. range.InsertAfter("Testing, testing, testing. . .");
Pour exécuter l'application
Ajoutez l'instruction suivante à Main.
DisplayInWord();
Appuyez sur CTRL+F5 pour exécuter le projet.Un document Word contenant le texte spécifié s'affiche.
Pour présenter le texte sous forme de tableau
Utilisez la méthode ConvertToTable pour placer le texte dans un tableau.Cette méthode comporte seize paramètres optionnels.IntelliSense place les paramètres optionnels entre parenthèses, comme indiqué dans l'illustration suivante.
Paramètres ConvertToTable
Les arguments nommés et optionnels vous permettent de spécifier des valeurs pour les seuls paramètres que vous souhaitez modifier.Ajoutez le code suivant à la fin de la méthode DisplayInWord pour créer un tableau simple.L'argument spécifie que les virgules de la chaîne de texte dans range séparent les cellules du tableau.
// Convert to a simple table. The table will have a single row with // three columns. range.ConvertToTable(Separator: ",");
Dans les versions antérieures de C#, l'appel à ConvertToTable requiert un argument de référence pour chaque paramètre, comme indiqué dans le code suivant.
// Call to ConvertToTable in Visual C# 2008 or earlier. This code // is not part of the solution. var missing = Type.Missing; object separator = ","; range.ConvertToTable(ref separator, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
Appuyez sur CTRL+F5 pour exécuter le projet.
Pour tester d'autres paramètres
Pour modifier le tableau afin qu'il comporte une colonne et trois lignes, remplacez la dernière ligne de DisplayInWord par l'instruction suivante, puis appuyez sur CTRL+F5.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
Pour spécifier un format prédéfini pour le tableau, remplacez la dernière ligne de DisplayInWord par l'instruction suivante, puis appuyez sur CTRL+F5.Le format peut correspondre à n'importe quelle constante WdTableFormat.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1, Format: Word.WdTableFormat.wdTableFormatElegant);
Exemple
Le code suivant inclut l'exemple complet.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word;
namespace OfficeHowTo
{
class WordProgram
{
static void Main(string[] args)
{
DisplayInWord();
}
static void DisplayInWord()
{
var wordApp = new Word.Application();
wordApp.Visible = true;
// docs is a collection of all the Document objects currently
// open in Word.
Word.Documents docs = wordApp.Documents;
// Add a document to the collection and name it doc.
Word.Document doc = docs.Add();
// Define a range, a contiguous area in the document, by specifying
// a starting and ending character position. Currently, the document
// is empty.
Word.Range range = doc.Range(0, 0);
// Use the InsertAfter method to insert a string at the end of the
// current range.
range.InsertAfter("Testing, testing, testing. . .");
// You can comment out any or all of the following statements to
// see the effect of each one in the Word document.
// Next, use the ConvertToTable method to put the text into a table.
// The method has 16 optional parameters. You only have to specify
// values for those you want to change.
// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");
// Change to a single column with three rows..
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
// Format the table.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
Format: Word.WdTableFormat.wdTableFormatElegant);
}
}
}