ICustomFunction Özelliği Kullanımı

Kullanıcı Tanımlı Bir İşlev Oluşturma ve Değerlendirme

Bu makale, ICustomFunction arabirimini uygulayarak özel bir işlevi yazmayı ve bu işlevi elektronik tabloda kullanmayı ve sonuçları almayı göstermektedir. MyFunc adında 2 parametre kabul eden özel bir işlevi tanımlayacağız.

    1. parametre, bir hücreye atıfta bulunur
    1. parametre, hücrelerin bir aralığına atıfta bulunur

Özel işlev, 2. parametre olarak belirtilen hücre aralığındaki tüm değerleri ekler ve 1. parametredeki değerle bölerek sonucu verir.

İşte CalculateCustomFunction yöntemini nasıl uyguladığımız.

Yeni tanımlanan işlevi bir elektronik tabloda nasıl kullandığımız.

Genel Bakış

Aspose.Cells API’leri, ilgili parametre bir başvuru olduğunda veya hesaplanan sonucu bir başvuru olduğunda, ReferredArea nesnesini ‘paramsList’ içine yerleştirir. Başvuruyu kendiniz kullanmak istiyorsanız, ReferredArea’yı doğrudan kullanabilirsiniz. Formülün konumuna karşılık gelen başvurudan tek bir hücre değerini almanız gerekiyorsa, ReferredArea.GetValue(rowOffset, int colOffset) yöntemini kullanabilirsiniz. Alanın tamamı için hücre değerleri dizisi almanız gerekiyorsa, ReferredArea.GetValues yöntemini kullanabilirsiniz.

Aspose.Cells API’leri tarafından ‘paramsList’ içine ReferredArea verildiğinden, ‘contextObjects’ içindeki ReferredAreaCollection artık gereksiz olmayacak (eski sürümlerde özel işlev parametrelerine her zaman birbirine tekabül etmeyen bir eşleme yapamazdı) ve bu nedenle ‘contextObjects’ içinden kaldırılmıştır.

 public object CalculateCustomFunction(string functionName, ArrayList paramsList, ArrayList contextObjects)

{

    ...

    object o = paramsList[i];

    if(o is ReferredArea) //fetch data from reference

    {

        ReferredArea ra = (ReferredArea)o;

        if(ra.IsArea)

        {

            o = ra.GetValues();

        }

        else

        {

            o = ra.GetValue(0, 0);

        }

    }

    if (o is Array)

    {

        ...

    }

    else if...

    ...

}