مشكلة - ملفات excel جاهزة عربي




كيف يمكن غزيب ضغط ملف من إكسيل فبا باستخدام التعليمات البرمجية في ملف.xla فقط؟ (4)

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

ولكن أنا متأكد من أن القصف إلى غزيب من داخل فبا سيكون متطابق وظيفيا وسهل بلا حدود.

إديت: بعض التعليمات البرمجية. لم تفشل عندما ركضت عليه، لذلك فمن موافق للحفاظ على كل شيء في المصنف نفسه.

Sub main()
    ActiveWorkbook.Save
    Open "macrotest.xls" For Binary Access Read As #1
    Open "newfile.zip" For Binary Access Write As #2
        'do your stuff here
    Close #2
    Close #1
End Sub

أنا بحاجة إلى أن تكون قادرة على غزيب ضغط ملف في وظيفة إكسيل فبا. على وجه التحديد أنا بحاجة إلى أن تكون قادرة على استخدام خوارزمية "ديفلات".

هل هناك طريقة للقيام بذلك دون الحاجة إلى إعدام تطبيق سطر الأوامر؟ مع عدم الاعتماد على الأدوات الخارجية رمز سيكون أكثر قوة.

من الناحية المثالية رمز الاستفادة من فبا المثبتة مسبقا أو وظائف مكتبة كوم - أنا لا أريد أن يكون لتنفيذ هذا المنطق نفسي أو تثبيت دلز الخ

إذا كان ذلك ممكنا، أريد تثبيت وظيفة لتكون بسيطة مثل إضافة .xla إلى إكسيل الإضافية الإضافية. لا دلز، إيكس، إدخالات التسجيل الخ المطلوبة.

تحرير هل يمكنني الاستفادة من .NET غزيبستريم للقيام بذلك؟


حسنا، أعتقد أن لدي جوابا لك.

زليب هي مكتبة مكتوبة من قبل الرجل الذي كتب خوارزمية ديفلات كنت لا تريد تنفيذ. هناك Win32 دل المتاحة. وهنا الأسئلة الشائعة بشأن استخدامه من ويندوز:

http://www.zlib.net/DLL_FAQ.txt

تحقق من السؤال 7. المؤلفين لا يبدو حريصا جدا على مستخدمي ويندوز، ولا يبدو على الإطلاق حريصة على مستخدمي ف، ولكن طالما انهم نوع ما يكفي لتقديم المكتبة يمكننا أن نفعل بقية.

إذا كان هذا يكفي لمساعدتك، ثم كبيرة. إذا كنت تريد مساعدة مع استدعاء مكتبة C من فبا إضافة تعليق ونحن سوف الرقم بها. لم أفعل أي مكالمات ف-إلى- C في سنوات - يبدو وكأنه متعة.


إذا أراد شخص ما لضغط الملفات دون الاعتماد على برامج 3rd الطرف أنها عموما تنفيذها ككائن كوم / دل لذلك سيكون متاحا لأكثر من مجرد إكسيل. إذا أراد شخص ما دمج وظيفة الرمز البريدي في إكسيل فإنها سوف تستخدم أدوات الطرف الثالث بحيث لن تضطر إلى إعادة تنفيذ الخوارزمية. لذلك كنت السباحة ضد المد والجزر. ومع ذلك...

http://www.cpearson.com/excel/SaveCopyAndZip.htm

هناك نسختين. يسمح لك إضافة الوظيفة كوم "... بضغط أي مصنف تم حفظه على القرص (ولكن قد يكون في حالة غير محفوظة)." وهي تعتمد على مكون برنامج ضوء القمر ولكن جميع المكونات والإعداد موجودة في المثبت. انها ليست عامة المجال ولكن الترخيص هو أقل تقييدا ​​من غل. والنتيجة النهائية هي وظيفة إكسيل الإضافية (التي تستخدم مكون طرف ثالث).

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

آمل أن يساعد هذا.


فبا (الذي هو في الحقيقة لهجة من VB6) بطيئة لهذا النوع من التطبيقات. أتذكر أنني نفذت مرة واحدة خوارزمية شانون-فانو على VB6 وعلى C، وكان الإصدار C حوالي 10 مرات أسرع، حتى بعد أن تحولت إلى دلمين ودعا من هناك بدلا من على سطر الأوامر للتنفيذ.

هناك الكثير من كوم دلز التي توفر خدمات ضغط، كل من المصدر المفتوح و شاريوار، وبعض منهم تنفيذ غزيب ل ديفاريت خوارزمية. انها تريد أن تكون بسيطة حقا لمجرد استدعاء وظيفة واحدة من مثل دل من التعليمات البرمجية فبا الخاص بك للقيام ضغط نيابة عنك.

أنا أفهم أنك مترددة في استخدام شيء خارجي من تطبيقك، على الرغم من أنه في هذه الحالة قد تضطر إلى تطبيق استثناء من أجل الأداء.

في محاولة لتفسد تماما متعة الخاص بك، فحص ملف ZIPFLDR.DLL على ويندوز \ system32. قد ترغب أيضا في إلقاء نظرة على هذه الروابط:

وجدت على حد سواء من خلال غوغلينغ، يجب أن تكون قادرة على العثور على المزيد / أمثلة أفضل.





add-in