2008-09-10 10 views
6

मेरे पास .NET DLL में बैठे गणना विधियों का एक सेट है। मैं उन विधियों को Excel (2003+) उपयोगकर्ताओं के लिए उपलब्ध करना चाहता हूं ताकि वे उन्हें अपनी स्प्रैडशीट्स में उपयोग कर सकें।Excel कार्यों के रूप में .net विधियों का खुलासा?

उदाहरण के लिए, मेरी .net विधि:

public double CalculateSomethingReallyComplex(double a, double b) {...} 

मैं सिर्फ एक यादृच्छिक सेल में एक सूत्र टाइप करके इस विधि कॉल करने के लिए उन्हें सक्षम करना चाहते हैं:

=CalculateSomethingReallyComplex(A1, B1) 

क्या सबसे अच्छा होगा इसे पूरा करने का तरीका?

उत्तर

3

दो तरीकों रहे हैं - आप कार्यालय (VSTO) के लिए दृश्य स्टूडियो उपकरण का इस्तेमाल किया जा सकता है:

http://blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx

या आप कॉम का उपयोग कर सकते हैं:

http://blogs.msdn.com/eric_carter/archive/2004/12/01/273127.aspx

मैं सुनिश्चित नहीं हूं यदि VSTO विधि एक्सेल के पुराने संस्करणों में काम करेगी, लेकिन COM विधि को ठीक काम करना चाहिए।

8

आपको ExcelDna (http://www.codeplex.com/exceldna) पर भी एक नज़र डालना चाहिए। एक्सेलडेना एक ओपन-सोर्स प्रोजेक्ट है (वाणिज्यिक उपयोग के लिए भी निःशुल्क) जो आपको नेट का उपयोग करके देशी .xll ऐड-इन्स बनाने की अनुमति देता है। उपयोगकर्ता द्वारा परिभाषित कार्यों (यूडीएफ) और मैक्रोज़ दोनों बनाया जा सकता है। आपका ऐड-इन कोड टेक्स्ट-आधारित स्क्रिप्ट फ़ाइलों में हो सकता है जिसमें वीबी, सी # या एफ # कोड, या प्रबंधित .dlls शामिल हैं।

चूंकि मूल एक्सेल एसडीके इंटरफेस का उपयोग COM-आधारित स्वचालन के बजाय किया जाता है, इसलिए ExcelDna के आधार पर ऐड-इन्स आसानी से तैनात किए जा सकते हैं और पंजीकरण की आवश्यकता नहीं होती है। एक्सेलडेना Excel '97 से एक्सेल 2007 तक एक्सेल संस्करणों का समर्थन करता है, और एक्सेल 2007 डेटा प्रकारों (बड़ी शीट और यूनिकोड स्ट्रिंग्स) के साथ-साथ एक्सेल 2007 के तहत बहु-थ्रेडेड पुनर्मूल्यांकन के लिए समर्थन भी शामिल है।

संबंधित मुद्दे