منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : [ تمّ الحل ] : تصدير بيانات الجريد كنترول إلى الإكسل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السّلام عليكم و رحمة الله و بركاته
إخواني الأفاضل ..
جمعة طيّبة و مباركة للجميع إن شاء الله
كيف يمكن تصدير بيانات الجريد كنترول إلى الإكسل
بصراحة بحثت كثيرَا لكنّي لم أجد ضالتي
لديّ هذا الكود و الذي أستعمله عادةً في تصدير بيانات الداتا جريد فيو العاديّة و يشتغل بامتياز
حاولت التغيير فيه قليلاً ليتماشى مع الجريد كنترول الخاص بالديف إكسبرس
لكن للأسف كل محاولاتي باءت بالفشل
[صورة مرفقة: p_14700o4o01.jpg]
و الإشكالية بهذا السّطر من الكود ..
كود :
  .Cells(I + 2, j + 1).value = st.Rows(I).Cells(j).Value

كحل تحايلي مبدئي موقّت ..
قمت بإضافة داتاجريد عادية مخفيّة
و يتم التّصدير إلى الإكسل من خلالها
فالرّجاء ممّن لديهم فكرة .. المساعدة لوجه الله
أو حتّى طريقة أخرى للتّصدير
الكود المستعمل :
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Export_GridView_Express_Excel(GridView1)
   End Sub
 

              
          Catch ex As Exception
               MessageBox.Show(ex.Message, "خطأ غير متوقّع", MessageBoxButtons.OK, MessageBoxIcon.Error)
           Finally
               System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
               xlApp = Nothing
           End Try
       End If
   End Sub

و بارك الله في الجميع
تحياتي
أسلوب أداة DevExpress يختلف عن أسلوب أداة ميكروسوفت
PHP كود :
.Cells(21).value st.GetDataRow(I).Item(j

الأفضل أن يكون تعرف st في الروتين هو GridView وليس Object
وذلك من أجل أن تظهر لك الخصائص والتعريفات أثناء كتابة الكود لst
PHP كود :
Private Sub Export_GridView_Express_Excel(ByVal st As GridView

وبما أن الإجراء عام لا يرتبط بGridView محدد وإنما يرسل له مرجعها
قم بتغيير كلمات GridView1 الموجودة داخل الإجراء إلى st
مثل
PHP كود :
If GridView1.RowCount Nothing Then 
ليصبح هكذا
PHP كود :
If st.RowCount Nothing Then 
وهكذا

ويستحسن أن تضيف متغير اسم الملف مثل
PHP كود :
Private Sub Export_GridView_Express_Excel(ByVal st As GridViewexcelfilename As String
فيصبح مناداة الإجراء كالتالي
PHP كود :
Export_GridView_Express_Excel(GridView1"C:\وثيقة الإكسل لموكّلي و موكّلات مكتب المحاماة"
ولا تنسى أن تحذف اسم الملف داخل الإجراء وتكتب بدلا منه excelfilename مثل
PHP كود :
ElseIf Not Directory.Exists(excelfilenameThen
    Directory
.CreateDirectory(excelfilename

بالنسبة لأسماء رؤوس الأعمده
PHP كود :
.Cells(1iC 1).Value st.Columns.Item(iC).GetTextCaption 
السّلام عليكم و رحمة الله و بركاته
تسلم أخي الكريم الغاالي " جميل " و سلم يمينك و دينك إن شاء الله
و الله أخي الحبيب ..حاولت تطبيق كل ما ذكرته حسب معرفتي المتواضعة
الآن .. أصبحت رسالة الخطأ هذه التي تظهر .. يتم خلق المجلد لكن بدون ملف الإكسل
[صورة مرفقة: p_14701qxxn1.jpg]
الرجاء  .. بعد إذنك أخي الغالي إلقاء نظرة على كامل الكود المستعمل
كود :
   Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
       Export_GridView_Express_Excel(GridView1, "C:\وثيقة الإكسل لموكّلي و موكّلات مكتب المحاماة")
   End Sub
   
           Catch ex As Exception
               MessageBox.Show(ex.Message, "خطأ غير متوقّع", MessageBoxButtons.OK, MessageBoxIcon.Error)
           Finally
               System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
               xlApp = Nothing
           End Try
       End If

تحياتي
تم تعديل الكود،
PHP كود :
.Cells(21).value st.GetDataRow(I).Item(j

أعتقد الخطأ السابق بسبب أن GridView1 مرتبط بالبيانات.

بالنسبة لأسماء رؤوس الأعمده
PHP كود :
.Cells(1iC 1).Value st.Columns.Item(iC).GetTextCaption 

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