كيف يمكنك إنشاء ورقة عمل Excel من خلال VB6 دون Excel الكائن ؟

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

سؤال

كنت مؤخرا وضعت في تهمة من تحديث VB6 جمع البيانات التطبيق ، إضافة إلى القدرة على توليد Excel التقارير وطباعتها من خلال التطبيق (على حد سواء يجب أن يتم على نفس الكمبيوتر).عادة هذا لن يكون مشكلة ، لقد ولدت Excel التقارير مع VB6 قبل استخدام كائن Excel.

لذلك ذهبت إلى الأمام و مشفرة معا التغييرات و قدم لهم ثم قيل لي أن الجهاز الذي هذا البرنامج سوف يكون isntalled لن يكون نسخة كاملة من Excel على ذلك ، يجب أن تأتي مع حل آخر.

حاولت إيجاد الملفات محدد (فاصلة فصل أو النص) ، ولكن عندما تكون هذه الملفات يتم فتحها في excel أنها لا شكل لطيف أيإذا خلية واحدة من 20 حرفا ، نصف chracters سيتم قطع بسبب الثابتة حجم الخلية.

لدي بعض الأفكار:

1) اعلم أوبن أوفيس لديه api.يمكن أن تكون هذه الواجهة البرمجية المستخدمة لتوليد منسق بشكل صحيح excel الملف ؟ هل هناك كائن COM يمكنني استخدامها ؟

2)وجدت هذه الأداة: http://www.carlosag.net/Tools/ExcelXmlWriter/ ومع ذلك ، كان مكتوب في VB.NET.هل يمكنني استخدام هذه الأداة في VB6?

أنا حقا الحيرة ولا تعرف في أي اتجاه رئيس القادمة.أي شخص لديه أي أفكار بشأن utitiles أعلاه ؟ أيضا, أنا أيضا فتح أي اقتراحات/ أفضل الطرق.أي شيء من شأنه أن يساعدني على إنجاز هذه المهمة سيكون موضع تقدير!

ملاحظة:Excel الإصدار التي سيتم استخدامها لعرض هذه التقارير في Excel 2007

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

المحلول 10

ولقد وجدت الحل:

ولقد وجدت DLL التي يمكن استخدامها لخلق وطباعة جداول البيانات إكسل. وأعتقد أنه من نفس الكاتب XML ولكن لVB6.

نصائح أخرى

دعونا نلقي نظرة على هذين المطلبين:

إضافة القدرة على توليد تقارير Excel طباعة لهم من خلال التطبيق.

و

الجهاز الذي هذا البرنامج سوف يكون isntalled[كذا] لا يكون لديك نسخة كاملة من برنامج Excel

إلا إن كنت أسأت فهم ، يبدو أن يستبعد بعضها بعضا.إذا كنت تقصد أنك سوف تكون مجرد توليد التقارير على جهاز واحد و سوف يكون ينظر إليها وطباعتها في أي مكان آخر ، قد حاول استخدام SpreadSheetML.

كن حذرا عند البحث في قوقل عن معلومات إضافية على SpreadSheetML:هناك الكثير من التضليل الذي يخلط SpreadSheetML مع تنسيق Xml المستخدمة في Excel في برنامج Office 2007.SpreadSheetML يعمل بقدر ما يعود إلى OfficeXP ، وحتى بالمعنى المحدود في Office 2000.

ويمكنك حفظ ملفات اكسل ك HTML. في تطبيق ويب كتبت أن هناك حاجة لتصدير البيانات كما اكسل، وأنا مجرد إنشاء ملف HTML مثل واحد تتفوق الصادرات. ثم عملت على أنها تطبيق / vnd.ms-التفوق. التفوق يفتحه على ما يرام. وربما كنت تستطيع أن تفعل شيئا من هذا القبيل.

ويمكنك أيضا العثور على مكتبة مثل واحد كنت مرتبطة يكتب تنسيق ملف المكتب الجديد مباشرة كما أعتقد أنهم مشتقات أكس.

وإنشاء ملف CSV كما تفعل عادة.

واسمحوا التطبيق سطح المكتب الخاص بك القيام التنسيق على الجهاز حيث هي ملفات XLS المتاحة، قبل طباعته.

إذا كنت على استعداد للعيش مع تثبيت وقت التشغيل .NET يمكنك لف المكتبة في الخيار رقم 2 مع فئة. NET تتعرض لCOM. الطبقة فقط يمر المكالمات إلى ExcelXMLwriter.

والبديل هو دراسة معيار XML وكتابة الكاتب الخاص بك ولكن هذا ربما مبالغة للمشروع.

وأما بالنسبة للأوبن أوفيس نلقي نظرة هنا . خصوصا قسم VBA هذه الصفحة هنا . ويبدو أن هناك عنصرا COM التي يمكنك استخدامها.

ومن الممكن إنشاء مصنف Excel على الجهاز دون Excel مثبت ** باستخدام اتصال جيت - أي اتصال جيت - لتنفيذ و"جعل الاستعلام الجدول" DML SQL أو SQL CREATE TABLE DLL حيث الجدول في السؤال هو اكسل واحد على سبيل المثال النظر في هذه التعليمات البرمجية VBA:

Dim cat
Set cat = CreateObject("ADOX.Catalog")
With cat  

  ' Create a new Jet .mdb
  .Create _
      "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=" & _
      Environ$("temp") & "\DropMe.mdb"
  ' Use .mdb's Jet connection to create an Excel table
  ' (will create a new workbook to contain it)
  .ActiveConnection.Execute _
     "CREATE TABLE" & _
     " [Excel 8.0;HDR=NO;Database=C:\db.xls;].[Sheet1]" & _
     " (col FLOAT);"
End With

وجيت هو أحد مكونات Windows التي تم إيقافها الذي هو من أي وقت مضى إلى الوقت الحاضر على ما قبل فيستا أجهزة ويندوز ويبقى للتنزيل مجانا من MS عبر MDAC.

وقال ان "لطباعتها من خلال [إكسل] التطبيق" تحتاج بشكل واضح التطبيق اكسل!

و** أعتقد أنه من الممكن: أنا لا يمكن العثور على الجهاز دون اكسل الذي لاختبار

!

والتحقق من ذلك: http://support.microsoft.com/default.aspx؟ SCID = كيلوبايت، اون لنا؛ Q271572

وأن تفعل الشيء نفسه وحفظ الملف مع التمديد. XLS بدلا من ذلك.

وبدلا من ذلك، يمكنك إنشاء جدول HTML المحتوى في momery والكتابة في ملف، مع تمديد XLS.

يجب إنشاء ملف SpreadsheetML من VB6 تكون بسيطة جدا انها مجرد ملف نصي يحتوي على نكهة خاصة من أكس. أنا اجد يمكنك الحصول على جميع المستندات لSpreadsheetML وWordML من MSDN.

وأنا تنتج حاليا حوالي 60 تقريرا مخصصة مختلفة من تطبيق vb.net باستخدام SpreadsheetML. هناك مشكلة محتملة واحدة على الأقل بسبب التغيرات في امتدادات الملفات وأمن الوثائق تنفيذها في Excel 2007. إذا كنت إنشاء ملف اكسل SpreadsheetML مقرها واستخدام ملحق. XLS أنها ستفتح على ما يرام في عام 2003. اكسل 2007 سوف يطفو على السطح الحوار تخبرك أنه ملحق الملف لا يتطابق مع محتوى الملف. فإنه سيتم فتح وعرض الملف بشكل صحيح بعد حوار تحذير. إذا قمت بتغيير ملحق على وثيقة SpreadsheetML ل. XML، سيقوم Excel 2007 فتحه مع أي شكوى. ولكن لديك جداول أكس استنادا قد فتح في IE على أجهزة تشغيل برنامج Excel 2003.

NPOI لا يستخدم مكتبة التفوق ويعطي الانتاج في التفوق شكل 2003

وأنا أيضا سوف تذهب مع خيار CSV. لا يتطلب أي DLL أو أي نوع آخر من وجوه. واحد التحذير هو أن نكون حذرين جدا حول تنسيق الأرقام الخاصة بك تستخدم، لأن قيمة 1،024.00 شأنه أن يخلق عمودين وخرطوم المصنف بأكمله. وسيكون موضع تنسيق كشيء مثل تنسيق (Numberfield، "######### # 0")

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