1. Produkter
  2.   Kalkylblad
  3.   .NET
  4.   ExcelDNA
 
  

Open Source .NET-bibliotek för bearbetning av Excel-kalkylblad  

ExcelDNA låter dig skapa och distribuera Excel-tillägg med C#, F# eller VB .NET.

Excel-DNA är ett API med öppen källkod för att integrera .NET i Excel. API:er låter dig skapa högpresterande användardefinierade funktioner (UDF) och mer i dina inbyggda (.xll) tillägg för Excel. Du behöver ingen installation eller registrering, hela ditt tillägg kan packas i en enda .xll.

Excel-DNA Runtime är gratis för all användning och distribueras under en tillåten öppen källkodslicens som även tillåter kommersiell användning. Den är utvecklad med .NET och användare måste installera .NET Framework runtime. Excel- och .NET-koden integreras med varandra med hjälp av tillägg (.xll) som exponerar .NET-kod för excel. Du kan skriva din kod i textbaserade (.dna) skriptfiler (C#, Visual Basic eller F#), eller kompilerade .NET-bibliotek (.dll).

Previous Next

Komma igång med Excel-DNA

Det rekommenderade sättet att installera ExcelDNA är från NuGet. Använd följande kommando för snabbare installation.

Installera ExcelDNA från NuGet

 Install-Package ExcelDna.AddIn

Skapa Excel-funktioner via .NET API

ExcelDNA ger C# .NET-programmerare kompetensen att generera Excel-funktioner med C#. Du kan också använda ExcelFunctionAttributes som Name, Description, Category, IsHidden, IsExceptionSafe och mer. Attributet IsMacroType ändrar parametrarna som Excel-DNA använder när funktionen registreras.

Hur man skapar och använder Excel-funktioner via .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;
    }
}

Stöd för Dynamic Arrays

Open source .NET API Excel-DNA stöder också användningen av dynamiska arrayer i excel. När du skriver en dynamisk matrisformel avgör den om formeln har potential att returnera flera värden.

Hur man gör en Array & Auto Resize the Result via C# API

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

Diagnostic Logging Support

ExcelDNA API tillåter .NET-utvecklare att använda diagnostisk loggning medan de arbetar med Excel-tillägg. Excel-DNA använder standardmekanismerna .NET System.Diagnostics.Trace för diagnostisk loggning.

Log Warnings and Errors inside Add-in

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!");
 Svenska