Βιβλιοθήκη ανοιχτού κώδικα .NET για επεξεργασία υπολογιστικών φύλλων του Excel  

Το ExcelDNA σάς επιτρέπει να δημιουργείτε και να αναπτύσσετε πρόσθετα Excel χρησιμοποιώντας C#, F# ή VB .NET.

Το Excel-DNA είναι ένα API ανοιχτού κώδικα για την ενσωμάτωση του .NET στο Excel. Το API σάς επιτρέπει να δημιουργείτε λειτουργίες που ορίζονται από το χρήστη (UDF) και άλλες λειτουργίες υψηλής απόδοσης στα εγγενή πρόσθετα (.xll) για το Excel. Δεν χρειάζεστε εγκατάσταση ή εγγραφή, ολόκληρο το πρόσθετο μπορεί να συσκευαστεί σε ένα μόνο .xll.

Ο χρόνος εκτέλεσης του Excel-DNA είναι δωρεάν για κάθε χρήση και διανέμεται υπό μια επιτρεπτή άδεια ανοιχτού κώδικα που επιτρέπει επίσης εμπορική χρήση. Αναπτύχθηκε με χρήση .NET και οι χρήστες πρέπει να εγκαταστήσουν το χρόνο εκτέλεσης .NET Framework. Το Excel και ο κώδικας .NET ενοποιούνται μεταξύ τους χρησιμοποιώντας το πρόσθετο (.xll) που εκθέτει τον κώδικα .NET στο Excel. Μπορείτε να γράψετε τον κώδικά σας σε αρχεία δέσμης ενεργειών που βασίζονται σε κείμενο (.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 υποστηρίζει επίσης τη χρήση δυναμικών πινάκων στο excel. Όταν γράφετε έναν τύπο δυναμικού πίνακα, καθορίζει εάν ο τύπος έχει τη δυνατότητα να επιστρέψει πολλές τιμές.

Πώς να κάνετε ένα Array & Auto Αποτέλεσμα μέσω 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);
        }
    }

Διαγνωστική Υποστήριξη Logging

Το ExcelDNA API επιτρέπει στους προγραμματιστές .NET να χρησιμοποιούν διαγνωστική καταγραφή ενώ εργάζονται με το πρόσθετο Excel. Το Excel-DNA χρησιμοποιεί τους τυπικούς μηχανισμούς .NET System.Diagnostics.Trace για διαγνωστική καταγραφή.

Προειδοποιήσεις και λάθη στο 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!");
 Ελληνικά