1. Ürün:% s
  2.   E-tablo
  3.   .NET
  4.   ExcelDNA
 
  

Excel Elektronik Tablolarını İşleme için Açık Kaynak .NET Kitaplığı  

ExcelDNA, C#, F# veya VB .NET kullanarak Excel Eklentileri oluşturmanıza ve dağıtmanıza olanak tanır.

Excel-DNA, .NET'i Excel'e entegre etmek için açık kaynaklı bir API'dir. API, Excel için yerel (.xll) eklentilerinizde yüksek performanslı kullanıcı tanımlı işlevler (UDF'ler) ve daha fazlasını oluşturmanıza olanak tanır. Herhangi bir kuruluma veya kayda ihtiyacınız yoktur, tüm eklentiniz tek bir .xll dosyasında toplanabilir.

Excel-DNA Runtime tüm kullanımlar için ücretsizdir ve ticari kullanıma da izin veren izin verilen bir açık kaynak lisansı altında dağıtılır. .NET kullanılarak geliştirilmiştir ve kullanıcıların .NET Framework çalışma zamanını yüklemeleri gerekir. Excel ve .NET kodu, .NET kodunu excel'e sunan Eklentiyi (.xll) kullanarak birbirleriyle bütünleşir. Kodunuzu metin tabanlı (.dna) komut dosyalarına (C#, Visual Basic veya F#) veya derlenmiş .NET kitaplıklarına (.dll) yazabilirsiniz.

Previous Next

Excel-DNA'ya Başlarken

ExcelDNA'yı kurmanın önerilen yolu NuGet'tendir, Daha hızlı kurulum için lütfen aşağıdaki komutu kullanın.

NuGet'ten ExcelDNA'yı yükleyin

 Install-Package ExcelDna.AddIn

.NET API ile Excel İşlevleri Oluşturun

ExcelDNA, C# .NET programcılarına C# kullanarak Excel işlevleri oluşturma yetkinliği verir. Ad, Açıklama, Kategori, IsHidden, IsExceptionSafe ve daha fazlası gibi ExcelFunctionAttributes öğesini de kullanabilirsiniz. IsMacroType özniteliği, işlevi kaydederken Excel-DNA'nın kullandığı parametreleri değiştirir.

Nasıl Oluşturulur ve Excel işlevleri kullanın .NET API

public class GetInfoFunctions
{
    [ExcelFunction(Description = "Returns the result of xlfGetCell.", IsMacroType = true)]
    public static object GetCell(int type_num, [ExcelArgument(AllowReference = true)] object reference)
    {
        return XlCall.Excel(XlCall.xlfGetCell, type_num, reference);
    }
    [ExcelFunction(Description = "Returns the result of xlfGetWorkspace.", IsMacroType = true)]
    public static object GetWorkspace(int type_num)
    {
        return XlCall.Excel(XlCall.xlfGetWorkspace, type_num);
    }
    [ExcelFunction(Description = "Returns the current list separator.", IsMacroType = true)]
    public static string GetListSeparator(int type_num)
    {
        object[,] workspaceSettings = (object[,])XlCall.Excel(XlCall.xlfGetWorkspace, 37);
        string listSeparator = (string)workspaceSettings[0, 4];
        return listSeparator;
    }
}

Dinamik Diziler için Destek

Açık kaynak .NET API Excel-DNA, excel içindeki dinamik dizilerin kullanımını da destekler. Dinamik dizi formülü yazdığınızda, formülün birden çok değer döndürme potansiyeline sahip olup olmadığını belirler.

Bir Dizi & Auto Sonuç C# API aracılığıyla nasıl yapılır

public static object dnaMakeArrayAndResize(int rows, int columns, string unused, string unusedtoo)
        {
            object[,] result = dnaMakeArray(rows, columns);
            return ArrayResizer.dnaResize(result);
            // Can also call Resize via Excel - so if the Resize add-in is not part of this code, it should still work
            // (though calling direct is better for large arrays - it prevents extra marshaling).
            // return XlCall.Excel(XlCall.xlUDF, "Resize", result);
        }
        public static double[,] dnaMakeArrayAndResizeDoubles(int rows, int columns)
        {
            double[,] result = dnaMakeArrayDoubles(rows, columns);
            return ArrayResizer.dnaResizeDoubles(result);
        }
    }

Tanı Logging Desteği

ExcelDNA API, .NET geliştiricilerinin Excel Eklentisi ile çalışırken tanılama günlüğünü kullanmasına olanak tanır. Excel-DNA, tanılama günlüğü için standart .NET System.Diagnostics.Trace mekanizmalarını kullanır.

Log Uyarılar ve Ekle-in içinde Hatalar

public void AutoOpen()
{
    // Log warnings and errors to the Excel-DNA LogDisplay
    Trace.Listeners.Add(new LogDisplayTraceListener());
}
...
Trace.TraceInformation("Trace information!");
Trace.TraceWarning("Trace warning!");
Trace.TraceError("Trace error!");
 Türkçe