Office programlamada adlandırılmış ve isteğe bağlı bağımsız değişkenleri kullanma

Adlandırılmış bağımsız değişkenler ve isteğe bağlı bağımsız değişkenler, C# programlamasında kolaylık, esneklik ve okunabilirliği artırır. Ayrıca, bu özellikler Microsoft Office otomasyon API'leri gibi COM arabirimlerine erişimi büyük ölçüde kolaylaştırır.

Önemli

VSTO (Office için Visual Studio Araçları) .NET Framework'e dayanır. COM eklentileri .NET Framework ile de yazılabilir. Office Eklentileri.NET'in en son sürümleri olan .NET Core ve .NET 5+ ile oluşturulamaz. Bunun nedeni .NET Core/.NET 5+'ın aynı işlemde .NET Framework ile birlikte çalışamaması ve eklenti yükleme hatalarına yol açabileceğidir. Office için VSTO ve COM eklentileri yazmak için .NET Framework'ü kullanmaya devam edebilirsiniz. Microsoft, .NET Core veya .NET 5+ kullanmak için VSTO veya COM eklenti platformunu güncelleştirmeyecektir. Office Web Eklentileri'nin sunucu tarafını oluşturmak için .NET Core ve .NET 5+ ASP.NET Core'un avantajlarından yararlanabilirsiniz.

Aşağıdaki örnekte ConvertToTable yönteminin sütun ve satır sayısı, biçimlendirme, kenarlıklar, yazı tipleri ve renkler gibi bir tablonun özelliklerini temsil eden 16 parametresi vardır. Çoğu zaman tümü için belirli değerleri belirtmek istemediğinizden, 16 parametrenin tümü isteğe bağlıdır. Ancak, adlandırılmış ve isteğe bağlı bağımsız değişkenler olmadan bir değer veya yer tutucu değer sağlamanız gerekir. Adlandırılmış ve isteğe bağlı bağımsız değişkenlerle, yalnızca projeniz için gereken parametreler için değerler belirtirsiniz.

Bu yordamları tamamlamak için bilgisayarınızda Microsoft Office Word yüklü olmalıdır.

Not

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE’yi kişiselleştirme.

Yeni konsol uygulaması oluşturma

Visual Studio’yu çalıştırın. Dosya menüsünde Yeni'nin üzerine gelin ve Proje'yi seçin. Şablonlar Kategorileri bölmesinde C# öğesini genişletin ve Ardından Windows'ı seçin. .NET Framework 4'ün Hedef Çerçeve kutusunda göründüğünden emin olmak için Şablonlar bölmesinin en üstüne bakın. Şablonlar bölmesinde Konsol Uygulaması'nı seçin. Ad alanına projeniz için bir ad yazın. Tamam'ı seçin. Yeni proje Çözüm Gezgini görüntülenir.

Başvuru ekleme

Çözüm Gezgini'da projenizin adına sağ tıklayın ve ardından Başvuru Ekle'yi seçin. Başvuru Ekle iletişim kutusu görüntülenir. .NET sayfasında, Bileşen Adı listesinde Microsoft.Office.Interop.Word'u seçin. Tamam'ı seçin.

Gerekli kullanım yönergelerini ekleme

Çözüm Gezgini'da, Program.cs dosyasına sağ tıklayıp Kodu Görüntüle'yi seçin. Kod dosyasının en üstüne aşağıdaki using yönergeleri ekleyin:

using Word = Microsoft.Office.Interop.Word;

Word belgesinde metin görüntüleme

Program Program.cs sınıfında, bir Word uygulaması ve bir Word belgesi oluşturmak için aşağıdaki yöntemi ekleyin. Add yönteminin dört isteğe bağlı parametresi vardır. Bu örnekte varsayılan değerleri kullanılır. Bu nedenle, çağırma deyiminde hiçbir bağımsız değişken gerekli değildir.

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

Belgedeki metnin nerede görüntüleneceğini ve hangi metnin görüntüleneceğini tanımlamak için yöntemin sonuna aşağıdaki kodu ekleyin:

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

Uygulamayı çalıştırma

Main'a aşağıdaki deyimi ekleyin:

DisplayInWord();

Projeyi çalıştırmak için CTRL+F5 tuşlarına basın. Belirtilen metni içeren bir Word belgesi görüntülenir.

Metni tablo olarak değiştirme

ConvertToTable Metni tabloya almak için yöntemini kullanın. yöntemi 16 isteğe bağlı parametreye sahiptir. IntelliSense, aşağıdaki çizimde gösterildiği gibi isteğe bağlı parametreleri köşeli ayraç içine alır.

List of parameters for ConvertToTable method

Adlandırılmış ve isteğe bağlı bağımsız değişkenler, yalnızca değiştirmek istediğiniz parametrelerin değerlerini belirtmenizi sağlar. Aşağıdaki kodu yöntemin DisplayInWord sonuna ekleyerek bir tablo oluşturun. bağımsız değişkeni, içindeki metin dizesindeki range virgüllerin tablonun hücrelerini birbirinden ayırdığını belirtir.

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

Projeyi çalıştırmak için CTRL+F5 tuşlarına basın.

Diğer parametrelerle denemeler yapın

Tabloyu bir sütun ve üç satır olacak şekilde değiştirin, içindeki son satırı DisplayInWord aşağıdaki deyimle değiştirin ve CTRL+F5 yazın.

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

Tablo için önceden tanımlanmış bir biçim belirtin, içindeki DisplayInWord son satırı aşağıdaki deyimle değiştirin ve CTRL+F5 yazın. Biçim, WdTableFormat sabitlerinden herhangi biri olabilir.

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

Örnek

Aşağıdaki kod tam örneği içerir:

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