Jak použít pojmenované a nepovinné argumenty v programování pro sadu Office

Pojmenované argumenty a volitelné argumenty zlepšují pohodlí, flexibilitu a čitelnost v programování v jazyce C#. Kromě toho tyto funkce výrazně usnadňují přístup k rozhraním MODELU COM, jako jsou rozhraní API pro automatizaci systém Microsoft Office.

Důležité

VSTO (Visual Studio Tools for Office) spoléhá na rozhraní .NET Framework. Doplňky modelu COM lze také napsat pomocí rozhraní .NET Framework. Doplňky pro Office nelze vytvořit pomocí .NET Core a .NET 5 nebo novějších, nejnovějších verzí .NET. Důvodem je to, že .NET Core/.NET 5+ nemůže spolupracovat s rozhraním .NET Framework ve stejném procesu a může vést k selháním načítání doplňků. K psaní doplňků VSTO a COM pro Office můžete dál používat rozhraní .NET Framework. Microsoft nebude aktualizovat VSTO ani doplňkovou platformu MODELU COM, aby používala .NET Core nebo .NET 5+. Pokud chcete vytvořit serverovou stranu webových doplňků Office, můžete využít rozhraní .NET Core a .NET 5 nebo novější, včetně ASP.NET Core.

V následujícím příkladu má metoda ConvertToTable 16 parametrů, které představují charakteristiky tabulky, například počet sloupců a řádků, formátování, ohraničení, písma a barvy. Všech 16 parametrů je volitelné, protože většinou nechcete zadávat konkrétní hodnoty pro všechny. Bez pojmenovaných a nepovinných argumentů však musíte zadat hodnotu nebo zástupnou hodnotu. S pojmenovanými a nepovinnými argumenty zadáte hodnoty pouze pro parametry požadované pro váš projekt.

Abyste mohli tyto postupy dokončit, musíte mít na počítači nainstalovaný systém Microsoft Office Word.

Poznámka:

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Vytvoření nové konzolové aplikace

Spusťte Visual Studio. V nabídce Soubor přejděte na příkaz Nový a vyberte Projekt. V podokně Kategorie šablon rozbalte C# a pak vyberte Windows. V horní části podokna Šablony se ujistěte, že se rozhraní .NET Framework 4 zobrazí v poli Cílové rozhraní . V podokně Šablony vyberte Konzolová aplikace. Do pole Název zadejte název projektu. Vyberte OK. Nový projekt se zobrazí v Průzkumník řešení.

Přidání odkazu

V Průzkumník řešení klikněte pravým tlačítkem myši na název projektu a pak vyberte Přidat odkaz. Zobrazí se dialogové okno Přidat odkaz . Na stránce .NET vyberte Microsoft.Office.Interop.Word v seznamu Název součásti. Vyberte OK.

Přidání nezbytných direktiv using

V Průzkumník řešení klikněte pravým tlačítkem myši na soubor Program.cs a pak vyberte Zobrazit kód. Na začátek souboru kódu přidejte následující using direktivy:

using Word = Microsoft.Office.Interop.Word;

Zobrazení textu ve wordovém dokumentu

Program Do třídy v Program.cs přidejte následující metodu pro vytvoření aplikace Word a wordového dokumentu. Metoda Add má čtyři volitelné parametry. V tomto příkladu se používají výchozí hodnoty. Proto nejsou v volajícím příkazu nutné žádné argumenty.

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();
}

Na konec metody přidejte následující kód, který definuje, kde se má zobrazovat text v dokumentu a jaký text se má zobrazit:

// 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. . .");

Spuštění aplikace

Do hlavního příkazu přidejte následující příkaz:

DisplayInWord();

Stisknutím kombinace kláves CTRL+F5 spusťte projekt. Zobrazí se wordový dokument, který obsahuje zadaný text.

Změna textu na tabulku

Použijte metodu ConvertToTable k uzavření textu v tabulce. Metoda má 16 volitelných parametrů. IntelliSense uzavře volitelné parametry do závorek, jak je znázorněno na následujícím obrázku.

List of parameters for ConvertToTable method

Pojmenované a volitelné argumenty umožňují zadat hodnoty pouze pro parametry, které chcete změnit. Na konec metody DisplayInWord přidejte následující kód pro vytvoření tabulky. Argument určuje, že čárky v textovém řetězci v range samostatných buňkách tabulky.

// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");

Stisknutím kombinace kláves CTRL+F5 spusťte projekt.

Experimentování s dalšími parametry

Změňte tabulku tak, aby obsahuje jeden sloupec a tři řádky, nahraďte poslední řádek DisplayInWord následujícím příkazem a zadejte CTRL+F5.

range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);

Zadejte předdefinovaný formát tabulky, nahraďte poslední řádek DisplayInWord následujícím příkazem a zadejte ctrl+F5. Formát může být libovolný z wdTableFormat konstant.

range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
    Format: Word.WdTableFormat.wdTableFormatElegant);

Příklad

Následující kód obsahuje úplný příklad:

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);
        }
    }
}