1. produkty
  2.   Tabulka
  3.   .NET
  4.   ExcelDNA
 
  

Open Source knihovna .NET pro zpracování tabulek aplikace Excel  

ExcelDNA umožňuje vytvářet a nasazovat doplňky aplikace Excel pomocí C#, F# nebo VB .NET.

Excel-DNA je open source API pro integraci .NET do Excelu. Rozhraní API vám umožňuje vytvářet vysoce výkonné uživatelsky definované funkce (UDF) a další ve vašich nativních (.xll) doplňcích pro Excel. Nepotřebujete žádnou instalaci ani registraci, celý váš doplněk lze sbalit do jediného .xll.

Excel-DNA Runtime je zdarma pro jakékoli použití a je šířen pod povolenou open-source licencí, která také umožňuje komerční použití. Je vyvíjen pomocí .NET a uživatelé si musí nainstalovat runtime .NET Framework. Excel a kód .NET se vzájemně integrují pomocí doplňku (.xll), který zpřístupňuje kód .NET Excelu. Svůj kód můžete napsat do textových (.dna) skriptových souborů (C#, Visual Basic nebo F#) nebo kompilovaných .NET knihoven (.dll).

Previous Next

Začínáme s Excel-DNA

Doporučený způsob instalace ExcelDNA je z NuGet, použijte prosím následující příkaz pro rychlejší instalaci.

Nainstalujte ExcelDNA z NuGet

 Install-Package ExcelDna.AddIn

Vytvářejte funkce aplikace Excel prostřednictvím rozhraní .NET API

ExcelDNA dává programátorům C# .NET kompetenci generovat funkce Excelu pomocí C#. Můžete také použít ExcelFunctionAttributes jako Name, Description, Category, IsHidden, IsExceptionSafe a další. Atribut IsMacroType mění parametry, které Excel-DNA používá při registraci funkce.

Jak vytvořit a používat funkce Excel prostřednictvím .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;
    }
}

Podpora dynamických polí

Open source .NET API Excel-DNA také podporuje použití dynamických polí v Excelu. Když napíšete vzorec dynamického pole, určí, zda má vzorec potenciál vrátit více hodnot.

Jak provést Array & Auto změnit výsledek pomocí 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);
        }
    }

Diagnostická podpora

ExcelDNA API umožňuje vývojářům .NET používat diagnostické protokolování při práci s doplňkem Excel. Excel-DNA používá standardní .NET System.Diagnostics.Trace mechanismy pro diagnostické protokolování.

Logické varování a chyby uvnitř 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!");
 Čeština