ספריית קוד פתוח .NET לעיבוד גיליונות אלקטרוניים של Excel  

ExcelDNA מאפשר לך ליצור ולפרוס תוספות Excel באמצעות C#, F# או VB .NET.

Excel-DNA הוא ממשק API בקוד פתוח לשילוב NET ב-Excel. ה-API מאפשר לך ליצור פונקציות בהגדרת משתמש (UDF) בעלות ביצועים גבוהים ועוד בתוספות המקוריות שלך (.xll) עבור Excel. אתה לא צריך שום התקנה או רישום, ניתן לארוז את כל התוסף שלך לתוך ‎.xll יחיד.

Excel-DNA Runtime הוא חינמי לכל שימוש ומופץ תחת רישיון קוד פתוח מתירני המאפשר גם שימוש מסחרי. הוא פותח באמצעות .NET והמשתמשים צריכים להתקין את זמן הריצה של .NET Framework. ה-Excel וקוד ה-NET משתלבים זה בזה באמצעות תוסף (.xll) שחושף את קוד NET ל-Exel. אתה יכול לכתוב את הקוד שלך בקובצי סקריפטים מבוססי טקסט (.dna) (C#, Visual Basic או F#), או ספריות NET מהידור (.dll).

Previous Next

תחילת העבודה עם Excel-DNA

הדרך המומלצת להתקין את ExcelDNA היא מ-NuGet, אנא השתמש בפקודה הבאה להתקנה מהירה יותר.

התקן את ExcelDNA מ-NuGet

 Install-Package ExcelDna.AddIn

צור פונקציות Excel באמצעות .NET API

ExcelDNA מעניק למתכנתי C# .NET את היכולת ליצור פונקציות Excel באמצעות C#. אתה יכול גם להשתמש ב- ExcelFunctionAttributes כמו שם, תיאור, קטגוריה, IsHidden, IsExceptionSafe ועוד. התכונה IsMacroType משנה את הפרמטרים שבהם Excel-DNA משתמש בעת רישום הפונקציה.

כיצד ליצור ולהשתמש בפונקציות Excel באמצעות .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;
    }
}

תמיכה במערכים דינמיים

הקוד הפתוח .NET API Excel-DNA תומך גם בשימוש במערכים דינמיים בתוך אקסל. כאשר אתה כותב נוסחת מערך דינמי, הוא קובע אם לנוסחה יש פוטנציאל להחזיר ערכים מרובים.

כיצד להפוך את ארגז שינוי אוטומטי התוצאה באמצעות 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);
        }
    }

סיוע התחברות אבחון

ExcelDNA API מאפשר למפתחי NET להשתמש ברישום אבחון תוך כדי עבודה עם תוסף Excel. Excel-DNA משתמש במנגנוני .NET System.Diagnostics.Trace הסטנדרטיים לרישום אבחון.

אזהרות וטעויות בתוך תוספים

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!");
 עִברִית