1. Termékek
  2.   Táblázat
  3.   .NET
  4.   ExcelDNA
 
  

Nyílt forráskódú .NET-könyvtár Excel-táblázatok feldolgozásához  

Az ExcelDNA lehetővé teszi Excel-bővítmények létrehozását és üzembe helyezését C#, F# vagy VB .NET használatával.

Az Excel-DNA egy nyílt forráskódú API a .NET Excelbe való integrálására. Az API lehetővé teszi nagy teljesítményű, felhasználó által definiált függvények (UDF-ek) és még sok más létrehozását az Excel natív (.xll) bővítményeiben. Nincs szükség telepítésre vagy regisztrációra, a teljes bővítmény egyetlen .xll-be is csomagolható.

Az Excel-DNA Runtime minden felhasználásra ingyenes, és egy megengedő nyílt forráskódú licenc alatt terjesztik, amely kereskedelmi felhasználást is lehetővé tesz. .NET használatával lett kifejlesztve, és a felhasználóknak telepíteniük kell a .NET-keretrendszer futtatókörnyezetét. Az Excel és a .NET-kód egy Add-In (.xll) segítségével integrálódik egymással, amely a .NET-kódot excelnek teszi ki. A kódot szöveges (.dna) szkriptfájlokba (C#, Visual Basic vagy F#) vagy lefordított .NET-könyvtárakba (.dll) írhatja.

Previous Next

Az Excel-DNA használatának első lépései

Az ExcelDNA telepítésének javasolt módja a NuGet. Kérjük, használja a következő parancsot a gyorsabb telepítés érdekében.

Telepítse az ExcelDNA-t a NuGetből

 Install-Package ExcelDna.AddIn

Excel-függvények létrehozása .NET API-n keresztül

Az ExcelDNA képessé teszi a C# .NET programozókat arra, hogy Excel függvényeket állítsanak elő C# használatával. Használhat olyan ExcelFunctionAttributes attribútumokat is, mint a Név, Leírás, Kategória, IsHidden, IsExceptionSafe stb. Az IsMacroType attribútum megváltoztatja azokat a paramétereket, amelyeket az Excel-DNA a függvény regisztrálásakor használ.

Hogyan lehet létrehozni és használni az Excel funkciókat .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;
    }
}

Dinamikus tömbök támogatása

A nyílt forráskódú .NET API Excel-DNA is támogatja a dinamikus tömbök használatát az Excelben. Amikor dinamikus tömbképletet ír, meghatározza, hogy a képlet képes-e több értéket visszaadni.

Hogyan készítsünk Array & Auto Resize az Eredményt C# API segítségével

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

Diagnosztikus Logging támogatás

Az ExcelDNA API lehetővé teszi a .NET-fejlesztők számára, hogy diagnosztikai naplózást használjanak, miközben az Excel-bővítménnyel dolgoznak. Az Excel-DNA a szabványos .NET System.Diagnostics.Trace mechanizmusokat használja a diagnosztikai naplózáshoz.

Bejelentkezési figyelmeztetések és hibák az Add-in belül

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