الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مثال على إنشاء ملف إكسل من قاعدة بيانات أكسس

مغلق
بدأه McGeek في 18 أبريل 2007 · 6 رد · 4,535 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذا مثال على إنشلء ملف إكسل من قاعدة بيانات أكسس

بالإعتماد على Microsoft Excel Object Library

و يكون هذا المرجع موجود في قائمة COM و يختلف إصداره:

للإكسل إكس بي يكون 10

و 2003 يكون 11

و 2007 يكون 12

أرجو الملاحظات و مناقشة هه الطريقة و طرق أخرى..

هذا المثال من موقع:

www.codeproject.com

المثال بـ VB.NET 2005

etoexl.rar

تم تعديل هذه المشاركة بواسطة SalehRam في 18 أبريل 2007 في 13:41

lxcs.png

syria-flag_small.jpg

#2

للرفع

lxcs.png

syria-flag_small.jpg

#3

شكرا على المثال ولكن لو تشرحه على المنتدى يكون افضل

45678rh7.jpg
#4

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

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

فعلا هذا صحيح و لكن لا أعتقد أنها مشكلة.. قلي أي جهاز لا يوجد به أوفيس 2003 الآن؟؟

و بالنسبة للشرح:

الكود يتألف من جزئين:

- إنشاء الملف

- و حفظ التغييرات عليه

الطريقة المستخدمة ليست معقدة أو فيها شيء غريب..

أغلبها شيء منطقي:

عرف المتغيرات

حدد قيمة كل متغير

احفظ العمل

بعد إضافة المكتبة السابقة Microsoft Excel Object Library إلى المراجع يجب أن تقوم باستدعائها في الكود ليتم استخدامها..

Imports Microsoft.Office.Interop

و الآن أصبحت جاهزة للعمل عليها..

و هنا عند البدء بالتنفيذ لك الخيار إما أن يكون الكود ضمن Function أو Sub

في الستة أسطر الأولى لا يوجد أي شيء جديد...

Dim conCurrent as new oledb.oledbconnection
Dim DPTH1 as object = application.startuppath & "\data\ab_grd.mdb"
conCurrebt.connectionstring = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DPTH1_
& ";Presist Security Info=False"
Dim Sql1 as string = "select * from ab_grd"
Dim dsExcelExport as new Dataset
Dim daExcelExport as new oledb.oledbdataadapter(sql1,conCurrent)

في السطر الأول عرفنا متغير من نوع oledbconnection سنستخدمه لالاتصال بقاعدة البيانات المطلوبة..

في السطر الثاني حددنا موقع قاعدة البيانات بالمتغير DPTH1

في السطر الثالث أنشأنا سلسلة الارتباط ConnectionString

في السطر الرابع وضعنا جملة الاستعلام التي سنأخذ السجلات عن طريفها.. و هي مفتوحة يمكن وضعها على أي صورة

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

في السطر السادس عرفنا محول البيانات

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

Dim Excel as new Excel.Application
Dim IntColumn, IntRow, IntcolumnValue as Integer
Dim strExcelFile as String
daExcelExport.Fill(dsExcelExport)
Dim strApp as Object = Application.StartupPath & "\"

في السطر الأول عرفنا النتغير الذي سنتحكم بخصائص الملف عن طريقه و هو Excel

و لا حظ أنه لن تكون هذه القيمة معرفة إلا باستدعاء Microsoft.Office.Interop

في السطر الثاني عرفنا متغيرات من نوع عدد صحيح لتكون مستخدمة في تنسيق الخلايا..

في السطر الثالث عرفنا متغير نصي ليحمل اسم الملف

في السطر الرابع قمنا بملء مجموعة البيانات من محول البيانات

في السطر الخامس عرفنا متغير نصي أيضا وضعنا فيه دليل تخزين الملف الجديد و هو هنا مسار بدء تشغيل البرنامج

و هنا انتهى تعريف المتغيرات و هو الجزء الأول من العمل

أما مرحلة التنفيذ:

With Excel
	.SheetsInNewWorkBook = 1
	.() WorkBooks.Add
	.WorkSheets(1).Select()

في الأسطر الساقة حددنا شكل الملف الجديد:

السطر الثاني: حددنا عدد أوراق العمل في دفتر العمل = 1

السطر الثالث: أضفنا دفتر عمل إل ىالملف

السطر الرابع: اخترنا ورقة العمل رقم 1 و التي هي الوحيدة في الملف لنجري عليها العمليات

ثم لعرض المعلومات في الملف:

For intRow = 1 To dsExcelExport.Tables(0).Rows.Count -1
	For intColumnValue = 0 To dsExcelExport.Tables(0).Columns.Count - 1
		.Cells(intRow + 1, intColumnValue + 1).Value = dsExcelExport.Tables(0).Rows(intRow)._
ItemArry(intColumnValue).ToString
	Next
Next

في هذه الأسطر حددنا بداية و نهاية مجال الإضافة بالنسبة للصفوف و الأعمدة قم بدأنا الإضافة بواسطة التكرارFor الثاني

و لا حظ البداية في الإضافة من بعد الصف 1 بسبب إعطاء مساحة للعناوين..

و لتنسيق العناوين للأعمدة:

.Cells(1, 1).Value = "الرقم"

و طبعا مثلها باقي الأعمدة...

و بعد غلانتهاء من العمل نقوم بحفظ التغييرات على الملف:

strExcelFile = strApp & "excel_example"
.ActiveWorkBook().SaveAs(strExcelFile)
.ActiveWorkBook.Close()
End With

في هذا القسم قمنا بحفظ الملف في الدليل الموجود في strExcelFile

ز لاحظ أن اسم الملف بدون الملحق..

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

لو كان Excel 2000,2003 تكون xls

لو كان Escel 2007 تكون xlsx

ثم و في النهاية نغلق العملية و نفرغ الذاكرة..

Excel.Quit()
Excel = NoThing
GC.Collect
Exit Sub

و هذا المشروع بعد تعديل بعض الأشياء فيه:

etoexl.rar

lxcs.png

syria-flag_small.jpg

#6

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

و لكن أغلبها كان عن طريق عناصر و مكونات مباشرة

يعني تدخل مكان الملف المصدر و مكان الملف الهدف و يقوم مباشرة بالتحويل

و لكن فيها مشكلة أغلب الكلام العربي غير مدعوم..

بالإضافة إلى أسعارها الخيالية....

500$ على ملف حجمه 250كيلو بايت.!!!!!!!!!

أعتقد أن في الفيجوال ستوديو كل المكونات اللازمة لنعمل عليها و لكن تحتاج إلى تهيئة تماما كالمثال السابق..

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

تم تعديل هذه المشاركة بواسطة SalehRam في 22 أبريل 2007 في 08:07

lxcs.png

syria-flag_small.jpg

#7

excel micro

السلام عليكم

حقيقة شرح تشكرون عليه

وانا هذه الايام بصدد التعامل مع الاكسل من داخل الفجول دوت نت

واريد ان اعمل مايكرو ومن ثم تنفيذ المايكرو داخل الاكسل

((المايكرو يقوم بفتح ملف داخل اكسل ويقوم بعمل تنسيق له وانا اقوم بكتابة المايكرو من داخل الفجول نت ))

فمن لديه اي معلومات اتمني ان يساعدني فيها ...

100% Muslim Sunni

█║│█│║▌║││█║

█║│█│║▌║││█║

3619003249802010

Mahjooob Ibrahim

█║│█│║▌║││█║

█║│█│║▌║││█║

3619003249802010

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…