.شبكة:إذا كان .NET الخاص بي يقوم بأتمتة Office، فهل يتعين على العميل تثبيت Office؟

StackOverflow https://stackoverflow.com/questions/403118

  •  03-07-2019
  •  | 
  •  

سؤال

إذا قمت بإنشاء برنامج، والذي يستخدم في منطقة صغيرة بعيدة عن الطريق، أتمتة Excel:

هل سيفشل التطبيق عند الحاجة إلى برنامج Excel

أو هل سيفشل التطبيق في البدء؟


تحديث

اسمحوا لي أن أسأل نفس السؤال، ولكن بطريقة أكثر شمولا:

هل سيكون التطبيق صالحا للاستخدام من قبل

  • 99.9% من المستخدمين لم يستخدموا مطلقًا الميزة التي تتطلب برنامج Excel

  • 0% من المستخدمين، نظرًا لعدم تثبيت برنامج Excel.

دعني أطرح نفس السؤال بطريقة أخرى:

هل سيفشل أحد التطبيقات في التهيئة التي تشير إلى ملفات COM interop dll؟


دعني أطرح نفس السؤال بطريقة أخرى:

هل سيفشل التطبيق الذي لا يستخدم Excel، ولكنه يشير إلى مكتبة الارتباط الحيوي (DLL) الخاصة بـ COM في التشغيل؟


دعني أطرح نفس السؤال بطريقة أخرى:

هل سيكون التطبيق الذي لا يستخدم Excel قابلاً للاستخدام إذا لم يتم تثبيت Excel، وإذا كان هذا التطبيق يعتمد على ملفات dll الخاصة بـ Office Primary Interop؟


دعني أطرح نفس السؤال بطريقة أخرى:

إذا كان تطبيقي لا يستخدم برنامج Excel، فهل يتعين على المستخدم تثبيت برنامج Excel؟

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

المحلول

سيتم تنفيذ التعليمات البرمجية بشكل صحيح حتى يحاول إجراء اتصال بمكتبات الأتمتة، وفي ذلك الوقت سيقوم بإنشاء استثناء.

نصائح أخرى

لدي تطبيق يستخدم أتمتة Excel ويمكنني أن أقول بشكل قاطع أنه سيفشل في وقت التشغيل، وليس في وقت التحميل.في الواقع، نحن نتحقق لمعرفة ما إذا كان قد تم تثبيته أم لا ونعرض الزر "إظهار البيانات في Excel" فقط إذا عثرنا عليه (ولكن يتم نشر PIAs على جميع عمليات التثبيت).

إذا قمت بأتمتة Office...يجب أن يكون لديك مكتب!

بعد قولي هذا، تتغير الإجابة إذا قمت بتحريف السؤال إلى:هل يمكنني إنشاء جدول بيانات Excel دون وجود Excel على العميل؟

هناك العديد من عناصر التحكم التابعة لجهات خارجية للقيام بذلك؛يمكنك الكتابة مباشرة إلى مواصفات MS SpreadML XML (http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx;أو استخدم مكتبات الجهات الخارجية التي تفعل ذلك (مثل http://www.carlosag.net/Tools/ExcelXmlWriter/).

أعتقد أنها ستفشل في وقت التشغيل، لأن تجميعات التشغيل المتداخل يجب أن تكون قادرة على التحميل بدون مكونات COM المتوفرة على نظام العملاء.

تحديث:يجب أن يعني وقت التشغيل عندما تحتاج إليه!

باستخدام COM في Win32، سوف يفشل عند الحاجة.

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