Använda namngivna och valfria argument i Office-programmering
Namngivna argument och valfria argument förbättrar bekvämligheten, flexibiliteten och läsbarheten i C#-programmering. Dessutom underlättar dessa funktioner i hög grad åtkomsten till COM-gränssnitt, till exempel API:er för Microsoft Office-automatisering.
Viktigt!
VSTO (Visual Studio Tools för Office) förlitar sig på .NET Framework. COM-tillägg kan också skrivas med .NET Framework. Office-tillägg kan inte skapas med .NET Core och .NET 5+, de senaste versionerna av .NET. Det beror på att .NET Core/.NET 5+ inte kan fungera tillsammans med .NET Framework i samma process och kan leda till tilläggsbelastningsfel. Du kan fortsätta att använda .NET Framework för att skriva VSTO- och COM-tillägg för Office. Microsoft uppdaterar inte VSTO eller COM-tilläggsplattformen för att använda .NET Core eller .NET 5+. Du kan dra nytta av .NET Core och .NET 5+, inklusive ASP.NET Core, för att skapa serversidan för Office Web Add-ins.
I följande exempel har metoden ConvertToTable 16 parametrar som representerar egenskaperna för en tabell, till exempel antal kolumner och rader, formatering, kantlinjer, teckensnitt och färger. Alla 16 parametrar är valfria eftersom du för det mesta inte vill ange specifika värden för alla. Men utan namngivna och valfria argument måste du ange ett värde eller ett platshållarvärde. Med namngivna och valfria argument anger du endast värden för de parametrar som krävs för projektet.
Du måste ha Microsoft Office Word installerat på datorn för att kunna slutföra dessa procedurer.
Kommentar
Datorn kan visa olika namn eller platser för vissa av Visual Studio-användargränssnittselementen i följande instruktioner. Den Visual Studio-utgåva som du har och de inställningar som du använder avgör dessa element. Mer information finns i Anpassa IDE.
Skapa ett nytt konsolprogram
Starta Visual Studio. På Arkiv-menyn pekar du på Nytt och väljer sedan Projekt. I fönstret Mallkategorier expanderar du C#och väljer sedan Windows. Titta längst upp i fönstret Mallar för att se till att .NET Framework 4 visas i rutan Målramverk . I fönstret Mallar väljer du Konsolprogram. Ange ett namn för projektet i fältet Namn . Välj OK. Det nya projektet visas i Solution Explorer.
Lägga till en referens
Högerklicka på projektets namn i Solution Explorer och välj sedan Lägg till referens. Dialogrutan Lägg till referens visas. På sidan .NET väljer du Microsoft.Office.Interop.Word i listan Komponentnamn . Välj OK.
Lägg till nödvändiga med hjälp av direktiv
Högerklicka på filen Program.cs i Solution Explorer och välj sedan Visa kod. Lägg till följande using
direktiv överst i kodfilen:
using Word = Microsoft.Office.Interop.Word;
Visa text i ett Word-dokument
Program
I klassen i Program.cs lägger du till följande metod för att skapa ett Word-program och ett Word-dokument. Metoden Lägg till har fyra valfria parametrar. I det här exemplet används deras standardvärden. Därför behövs inga argument i anropande instruktion.
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();
}
Lägg till följande kod i slutet av metoden för att definiera var texten ska visas i dokumentet och vilken text som ska visas:
// 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. . .");
Kör appen
Lägg till följande instruktion i Main:
DisplayInWord();
Tryck på CTRL+F5 för att köra projektet. Ett Word-dokument visas som innehåller den angivna texten.
Ändra texten till en tabell
ConvertToTable
Använd metoden för att omsluta texten i en tabell. Metoden har 16 valfria parametrar. IntelliSense omger valfria parametrar inom hakparenteser, enligt följande bild. Standardvärdena Type.Missing
för är det enkla namnet på System.Type.Missing
.
Med namngivna och valfria argument kan du bara ange värden för de parametrar som du vill ändra. Lägg till följande kod i slutet av metoden DisplayInWord
för att skapa en tabell. Argumentet anger att kommatecken i textsträngen i avgränsar cellerna i range
tabellen.
// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");
Tryck på CTRL+F5 för att köra projektet.
Experimentera med andra parametrar
Ändra tabellen så att den har en kolumn och tre rader, ersätt den sista raden i DisplayInWord
med följande instruktion och skriv sedan CTRL+F5.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
Ange ett fördefinierat format för tabellen, ersätt den sista raden i DisplayInWord
med följande instruktion och skriv sedan CTRL+F5. Formatet kan vara någon av WdTableFormat-konstanterna .
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
Format: Word.WdTableFormat.wdTableFormatElegant);
Exempel
Följande kod innehåller det fullständiga exemplet:
using System;
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);
}
}
}