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

نسخة كاملة : [ تمّ الحل ] : تصدير بيانات الجريد كنترول إلى الإكسل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السّلام عليكم و رحمة الله و بركاته
إخواني الأفاضل ..
جمعة طيّبة و مباركة للجميع إن شاء الله
كيف يمكن تصدير بيانات الجريد كنترول إلى الإكسل
بصراحة بحثت كثيرَا لكنّي لم أجد ضالتي
لديّ هذا الكود و الذي أستعمله عادةً في تصدير بيانات الداتا جريد فيو العاديّة و يشتغل بامتياز
حاولت التغيير فيه قليلاً ليتماشى مع الجريد كنترول الخاص بالديف إكسبرس
لكن للأسف كل محاولاتي باءت بالفشل
و الإشكالية بهذا السّطر من الكود ..
كود :
  .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 
السّلام عليكم و رحمة الله و بركاته
تسلم أخي الكريم الغاالي " جميل " و سلم يمينك و دينك إن شاء الله
و الله أخي الحبيب ..حاولت تطبيق كل ما ذكرته حسب معرفتي المتواضعة
الآن .. أصبحت رسالة الخطأ هذه التي تظهر .. يتم خلق المجلد لكن بدون ملف الإكسل
الرجاء  .. بعد إذنك أخي الغالي إلقاء نظرة على كامل الكود المستعمل
كود :
   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 لايحتاج هذا الكم من الجهد.