سؤال

لدي مجموعة من أساليب الحساب الموجودة في .Net DLL.أرغب في إتاحة هذه الأساليب لمستخدمي Excel (2003+) حتى يتمكنوا من استخدامها في جداول البيانات الخاصة بهم.

على سبيل المثال، طريقة .net الخاصة بي:

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

أرغب في تمكينهم من استدعاء هذه الطريقة فقط عن طريق كتابة صيغة في خلية عشوائية:

=CalculateSomethingReallyComplex(A1, B1)

ما هي أفضل طريقة لتحقيق ذلك؟

هل كانت مفيدة؟

المحلول

هناك طريقتان - يمكنك استخدام أدوات Visual Studio لـ Office (VSTO):

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

أو يمكنك استخدام COM:

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

لست متأكدًا مما إذا كانت طريقة VSTO ستعمل في الإصدارات الأقدم من برنامج Excel، ولكن يجب أن تعمل طريقة COM بشكل جيد.

نصائح أخرى

يجب عليك أيضًا إلقاء نظرة على ExcelDna (http://www.codeplex.com/exceldna).ExcelDna هو مشروع مفتوح المصدر (مجاني أيضًا للاستخدام التجاري) يسمح لك بإنشاء وظائف .xll الإضافية الأصلية باستخدام .Net.يمكن إنشاء كل من الوظائف المحددة من قبل المستخدم (UDFs) ووحدات الماكرو.يمكن أن يكون رمز الوظيفة الإضافية الخاص بك في ملفات نصية تحتوي على تعليمات برمجية VB أو C# أو F#، أو في ملفات .dll المُدارة.

نظرًا لاستخدام واجهات Excel SDK الأصلية، بدلاً من الأتمتة المستندة إلى COM، يمكن نشر الوظائف الإضافية المستندة إلى ExcelDna بسهولة ولا تتطلب أي تسجيل.يدعم ExcelDna إصدارات Excel من Excel '97 إلى Excel 2007، ويتضمن دعمًا لأنواع بيانات Excel 2007 (ورقة كبيرة وسلاسل Unicode)، بالإضافة إلى إعادة الحساب متعدد الخيوط ضمن Excel 2007.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top