एक्सेल स्प्रेडशीट को प्रोसेस करने के लिए ओपन सोर्स .NET लाइब्रेरी  

ExcelDNA आपको C#, F# या VB .NET का उपयोग करके Excel ऐड-इन्स बनाने और परिनियोजित करने की अनुमति देता है।

एक्सेल-डीएनए एक्सेल में .NET को एकीकृत करने के लिए एक ओपन सोर्स एपीआई है। एपीआई आपको एक्सेल के लिए अपने मूल (.xll) ऐड-इन्स में उच्च-प्रदर्शन उपयोगकर्ता-परिभाषित फ़ंक्शन (यूडीएफ) और अधिक बनाने की अनुमति देता है। आपको किसी स्थापना या पंजीकरण की आवश्यकता नहीं है, आपका संपूर्ण ऐड-इन एक .xll में पैक किया जा सकता है।

एक्सेल-डीएनए रनटाइम सभी उपयोग के लिए निःशुल्क है और एक अनुमेय ओपन-सोर्स लाइसेंस के तहत वितरित किया जाता है जो व्यावसायिक उपयोग की भी अनुमति देता है। इसे .NET का उपयोग करके विकसित किया गया है और उपयोगकर्ताओं को .NET Framework रनटाइम स्थापित करना होगा। एक्सेल और .NET कोड ऐड-इन (.xll) का उपयोग करके एक-दूसरे के साथ एकीकृत होते हैं जो एक्सेल के लिए .NET कोड को उजागर करता है। आप अपना कोड टेक्स्ट-आधारित (.dna) स्क्रिप्ट फ़ाइलों (C#, Visual Basic, या F#), या संकलित .NET लाइब्रेरी (.dll) में लिख सकते हैं।

Previous Next

एक्सेल-डीएनए के साथ शुरुआत करना

ExcelDNA को स्थापित करने का अनुशंसित तरीका NuGet से है, कृपया तेजी से स्थापना के लिए निम्न आदेश का उपयोग करें।

NuGet से ExcelDNA स्थापित करें

 Install-Package ExcelDna.AddIn

.NET API के माध्यम से एक्सेल फंक्शन बनाएं

ExcelDNA C# .NET प्रोग्रामर को C# का उपयोग करके एक्सेल फ़ंक्शन उत्पन्न करने की क्षमता देता है। आप ExcelFunctionAttributes जैसे नाम, विवरण, श्रेणी, IsHidden, IsExceptionSafe, आदि का भी उपयोग कर सकते हैं। IsMacroType विशेषता फ़ंक्शन को पंजीकृत करते समय एक्सेल-डीएनए द्वारा उपयोग किए जाने वाले मापदंडों को बदल देती है।

कैसे एक्सेल कार्यों को .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 एक्सेल-डीएनए एक्सेल के अंदर डायनेमिक एरेज़ के उपयोग का भी समर्थन करता है। जब आप एक गतिशील सरणी सूत्र लिखते हैं, तो यह निर्धारित करता है कि सूत्र में एकाधिक मान वापस करने की क्षमता है या नहीं।

कैसे एक ऐरे बनाने के लिए & ऑटो 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);
        }
    }

नैदानिक लॉगिंग समर्थन

एक्सेल डीएनए एपीआई .NET डेवलपर्स को एक्सेल ऐड-इन के साथ काम करते समय डायग्नोस्टिक लॉगिंग का उपयोग करने की अनुमति देता है। एक्सेल-डीएनए मानक .NET सिस्टम का उपयोग करता है। डायग्नोस्टिक्स। डायग्नोस्टिक लॉगिंग के लिए ट्रेस तंत्र।

ऐड-इन के अंदर लॉग चेतावनी और त्रुटियां

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!");
 हिन्दी