المحتوى الرئيسي لهذه المقالة هو استخدام ASP لإخراج أمثلة ملف Excel.
تتمثل إحدى طرق استخدام Excel في ASP في ربط ملف Excel كقاعدة بيانات ، وتشبه العملية تشغيل قاعدة بيانات الوصول. بالنسبة لتنسيق ثابت ، يحتوي هذا التنسيق على دمج خلايا معقد ، وأنماط خط الحدود ، والأنماط ، وعلاقات الصيغة بين الخلايا ، وما إلى ذلك. أعتقد أن أسهل شيء يجب فهمه هو فتح إعداد موجود في ملف القالب الجيد الخلفي ، ثم إدراج البيانات عند الحاجة ، حفظ ، الإخراج ...
الطريقة المذكورة هنا هي إنشاء كائن Excel مباشرة ، والذي يمكنه إجراء عمليات مختلفة على مستند Excel بشكل أكثر ملاءمة في الخلفية.
يحتاج جانب الخادم أيضًا إلى تعيين أذونات تشغيل مكونات COM. اكتب DCOMNFG على سطر الأوامر ، وأدخل واجهة تكوين مكون COM. أعد تشغيل الخادم بعد حفظه.
إنه أمر مهم للغاية.
ومع ذلك ، فإن هذه الطريقة لديها عيب في عملي الفعلي. لم يتم إعدادها بشكل صحيح.
بالإضافة إلى ذلك ، فإن تنسيق رمز المثال في المقالة المذكورة أعلاه غير مكتمل للغاية ، والعديد من فترات الفواصل والمساحات غير دقيقة. البحث وتعديله ، سيكون من السهل البدء.
رمز البرنامج:
- <٪
- onerrorresumenext
- Straddr = server.mappath (.)
- setobjexcelapp = createObject (excel.application)
- objexcelapp.displayalerts = خطأ
- objexcelapp.application.visible = false
- objexcelapp.workbooks.open (Straddr &/templet/null.xls)
- setobjexcelbook = objexcelapp.activeworkbook
- SetObjexcelsheets = Objexcelbook.worksheets
- setobjexcelseet = objexcelbook.sheets (1)
- Objexcelsheet.range (B2: K2) .value = Array (Week1 ، Week2 ، Week3 ، Week4 ، Week5 ، Week6 ، Week7)
- Objexcelsheet.range (B3: K3) .value = صفيف (67،87،5،9،7،45،45،54،54،10)
- Objexcelsheet.range (B4: K4) .value = صفيف (10،10،8،27،33،37،50،54،10،10)
- Objexcelsheet.range (B5: K5). value = صفيف (23،3،86،64،60،18،5،1،36،80)
- objexcelsheet.cells (3،1) .value = InternetExplorer
- objexcelsheet.cells (4،1). value = netscape
- objexcelsheet.cells (5،1). value = آخر
- Objexcelsheet.range (B2: K5) .select
- SEVEAS (Straddr و/temp/excel.xls)
- objexcelapp.quit
- setobjexcelapp = لا شيء
- ٪>
- <! doctypehtmlpublic-// w3c // dtdhtml4.0transternal // en>
- <html>
- <head>
- <title> NewDocument </itlem>
- <metaname = generatorContent = microsoftfrontpage5.0>
- <metaname = upultContent =>
- <metaname = الكلمة الرئيسية =>
- <metaname = descriptionContent =>
- </head>
- <body>
- </body>
- </html>
بعد تشغيل ملف Excel ، تحتاج إلى إخراج الملف في الواقع لفتح مباشرة في IE ، لا تضعه في تحميل ملف Excel مع FSO ثم إخراجه في IE.
رمز البرنامج:
- <٪
- Dimfso ، filext ، strfilepath ، mime
- strfilepath = f: /aspxuexi.doc
- setfso = server.createBject (scripting.filesystemObject)
- filext = fso.getextensionName (strfilepath)
- setfso = لا شيء
- seleccaseFileStext
- كاسدوك
- MIME = التطبيق/msword
- casexls
- MIME = التطبيق/msexcel
- endselect
- Calloutput (Strfilepath ، MIME)
- ##################################################################### #####
- وظيفته (StrfilePath ، MIME)
- استجابة. contenttype = mime
- constadtypebinary = 1
- setObjStream = server.createBject (adodb.stream)
- objstream.Open
- objstream.type = adtypebinary
- objstream.loadfromfilestrfilepath
- استجابة
- objstream.close
- setObjStream = لا شيء
- الوظيفية
- ##################################################################### #####
- ٪>
في التطبيق الفعلي ، عندما يقوم الخادم بتشغيل برنامج Excel أو Access ، يقدم العميل إنشاء كائن Excel.Application دون نجاح. لا يمكن أن يكون الطلب ناجحًا أيضًا!
هناك أمثلة ناجحة على الشبكة الداخلية من قسمنا. يعمل على شبكة أمان العميل IE ، هو أنه يمكنك وضع مستوى منخفض والسماح بتشغيل ActiveX ذي الصلة (أي ، قم بتعيين جميع أنواع الأشياء المتعلقة بالأمان للسماح في خيارات أداة IE ، وأي عنصر محدد ليس التحقيق).
يشبه الرمز الذي تم تنفيذه السجل السابق ، والأبسط هو كما يلي:
رمز البرنامج:
- <scriptLanguage = vbscript>
- setobjexcelapp = createObject (excel.application)
- objexcelapp.displayalerts = صحيح
- objexcelapp.workbooks.open (http://xxx.xxx.xxx/xxx.xls)
- "ملف XLS مع عنوان الشبكة الكامل ، تم تنسيق هذا الملف وطباعته ، وحفظه على الخادم
- setobjexcelbook = objexcelapp.activeworkbook
- SetObjexcelsheets = Objexcelbook.worksheets
- setobjexcelseet = objexcelbook.sheets (1)
- '==== فيما يلي عبارات تملأ البيانات على خلايا Excel.
- على سبيل المثال: reponse.writeobjexcelseet.range (b2) .value = & rs (xxx) &
- 'أو objexcelsheet.range (b2) .value = <٪ = rs (xxx) ٪>
- Objexcelsheet.range (B2: K2) .value = Array (Week1 ، Week2 ، Week3 ، Week4 ، Week5 ، Week6 ، Week7)
- Objexcelsheet.range (B3: K3) .value = صفيف (67،87،5،9،7،45،45،54،54،10)
- Objexcelsheet.range (B4: K4) .value = صفيف (10،10،8،27،33،37،50،54،10،10)
- Objexcelsheet.range (B5: K5). value = صفيف (23،3،86،64،60،18،5،1،36،80)
- objexcelsheet.cells (3،1) .value = InternetExplorer
- objexcelsheet.cells (4،1). value = netscape
- objexcelsheet.cells (5،1). value = آخر
- '=========================
- 'objexcelapp.quit
- 'setobjexcelapp = لا شيء
- </script>
في الرمز أعلاه
- 'objexcelapp.quit
- 'setobjexcelapp = لا شيء
كإلغاء ، لا تقم بإغلاق Excel.Applicaition هنا ، وإلا سيتم إغلاق Excel بعد ملء البيانات.
ما سبق هو العملية الكاملة لاستخدام ASP لإخراج ملفات Excel.