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

نسخة كاملة : برجاء تجربة المثال المرفق لتصدير البيانات الى اكسيل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
[attachment=20839]
 السلام عليكم

قمت بعمل مثال لتصدير البيانات الى اكسيل

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

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

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

كود :
  For i As Integer = 0 To grd.RowCount - 2
            For j As Integer = 0 To grd.ColumnCount - 1
             
            Next
        Next


المفروض يكون مضاف كالتالي

كود :
 For i As Integer = 0 To grd.RowCount - 2
           For j As Integer = 0 To grd.ColumnCount - 1
               exlworkSheet.Cells(i + 2, j + 1) = grd.Rows(i).Cells(j).Value
           Next
       Next

وبعد التجربة تم انشاء الملف بنجاح وتصدير البيانات فيه بنجاح
مرفق المثال بعد إضافة السطر الناقص + الملف الناتج 

* ملحوظة أستخدم عندي أوفيس 2010   فيجوال ستوديو 2012
تم معرفة الخطأ عن طريق مقارنة الكود بالكود المذكور في الموضوع تصدير البيانات إلى إكسل

تمنياتي لك بالتوفيق والنجاح
السّلام عليكم و رحمة الله و بركاته
أخي الكريم ..
أوّلا أتقدّم بجزيل الشكر و الإحترام و الإمتنان للأخ الفاضل " princelovelorn " لما قدّمه و يقدّمه للإخوة الأكارم
و المف المرسل من طرفه شغّال بطريقة رائعة و ليس به أي خلل ..
فقط كملاحظة من باب الاحتياط ..
أنا أشتغل على نسخة أوفيس 2010  لغة فرنسية و جميع الأكود لم تشتغل نتيجة عبارة Sheet1 .. طبعا قمت باستبدالها إلى كلمة Feuil1 واشتغل تمام
بالمعنى .. لو كان الأمر بملف تنفيذي على جهاز غير جهازك .. فكيف سيتم تغيير واستبدال الكلمة المقصودة
و لذلك أخي الكريم و من باب زيادة الخير خيرين .. إستعمل هذا الكود في تصدير البيانات إلى الإكسل فلا يوجد به أي إلتباس نحو هذا الأمر المشار إليه ..
غيّر أخي الكريم ما يجب تغييره ..
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Export_Dat_Excel(DGV_PATIENT)
   End Sub


كود :
   Private Sub Export_Dat_Excel(ByVal st As Object)
       If IO.Directory.Exists("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE\Association.xlsx") = False Then
           IO.Directory.CreateDirectory("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE")
       End If
       If ((DGV_PATIENT.Columns.Count = 0) Or (DGV_PATIENT.Rows.Count = 0)) Then
           Exit Sub
       End If
       Dim rowsTotal, colsTotal As Short
       Dim I, j, iC As Short
       System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
       Dim xlApp As New Excel.Application
       Try
           Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
           Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
           xlApp.Visible = True
           rowsTotal = st.RowCount
           colsTotal = st.Columns.Count - 1
           With excelWorksheet
               .Cells.Select()
               .Cells.Delete()
               For iC = 0 To colsTotal
                   .Cells(1, iC + 1).Value = st.Columns(iC).HeaderText
               Next
               For I = 0 To rowsTotal - 1
                   For j = 0 To colsTotal
                       .Cells(I + 2, j + 1).value = st.Rows(I).Cells(j).Value
                   Next j
               Next I
               .Rows("1:1").Style.Font.Name = "Times New Roman"
               .Rows("1:1").Font.FontStyle = "Bold"
               .Rows("1:1").Font.Size = 12
               .Rows("1:1").Font.Color = Color.Red
               .Columns.HorizontalAlignment = 3
               .Cells(j + 1).ColumnWidth = 10
               .Cells.Columns.AutoFit()
               .Cells.Select()
               .Cells.EntireColumn.AutoFit()
               .Cells(1, 1).Select()
           End With
           excelWorksheet.SaveAs("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE" & Now.ToString("@yyyy-MM-dd@HH-mm-ss") & ".xlsx")
           excelBook.Close()
           xlApp.Quit()
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
       Finally
           System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
       End Try
   End Sub

تحياتي
(14-02-19, 11:01 PM)عبد العزيز البسكري كتب : [ -> ]
السّلام عليكم و رحمة الله و بركاته
أخي الكريم ..
أوّلا أتقدّم بجزيل الشكر و الإحترام و الإمتنان للأخ الفاضل " princelovelorn " لما قدّمه و يقدّمه للإخوة الأكارم
و المف المرسل من طرفه شغّال بطريقة رائعة و ليس به أي خلل ..
فقط كملاحظة من باب الاحتياط ..
أنا أشتغل على نسخة أوفيس 2010  لغة فرنسية و جميع الأكود لم تشتغل نتيجة عبارة Sheet1 .. طبعا قمت باستبدالها إلى كلمة Feuil1 واشتغل تمام
بالمعنى .. لو كان الأمر بملف تنفيذي على جهاز غير جهازك .. فكيف سيتم تغيير واستبدال الكلمة المقصودة
و لذلك أخي الكريم و من باب زيادة الخير خيرين .. إستعمل هذا الكود في تصدير البيانات إلى الإكسل فلا يوجد به أي إلتباس نحو هذا الأمر المشار إليه ..
غيّر أخي الكريم ما يجب تغييره ..
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Export_Dat_Excel(DGV_PATIENT)
   End Sub


كود :
   Private Sub Export_Dat_Excel(ByVal st As Object)
       If IO.Directory.Exists("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE\Association.xlsx") = False Then
           IO.Directory.CreateDirectory("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE")
       End If
       If ((DGV_PATIENT.Columns.Count = 0) Or (DGV_PATIENT.Rows.Count = 0)) Then
           Exit Sub
       End If
       Dim rowsTotal, colsTotal As Short
       Dim I, j, iC As Short
       System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
       Dim xlApp As New Excel.Application
       Try
           Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
           Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
           xlApp.Visible = True
           rowsTotal = st.RowCount
           colsTotal = st.Columns.Count - 1
           With excelWorksheet
               .Cells.Select()
               .Cells.Delete()
               For iC = 0 To colsTotal
                   .Cells(1, iC + 1).Value = st.Columns(iC).HeaderText
               Next
               For I = 0 To rowsTotal - 1
                   For j = 0 To colsTotal
                       .Cells(I + 2, j + 1).value = st.Rows(I).Cells(j).Value
                   Next j
               Next I
               .Rows("1:1").Style.Font.Name = "Times New Roman"
               .Rows("1:1").Font.FontStyle = "Bold"
               .Rows("1:1").Font.Size = 12
               .Rows("1:1").Font.Color = Color.Red
               .Columns.HorizontalAlignment = 3
               .Cells(j + 1).ColumnWidth = 10
               .Cells.Columns.AutoFit()
               .Cells.Select()
               .Cells.EntireColumn.AutoFit()
               .Cells(1, 1).Select()
           End With
           excelWorksheet.SaveAs("C:\DOCUMENT EXCEL DE CABINET MEDICAL DE PNEUMO - ALLERGOLOGIE" & Now.ToString("@yyyy-MM-dd@HH-mm-ss") & ".xlsx")
           excelBook.Close()
           xlApp.Quit()
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
       Finally
           System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
       End Try
   End Sub

تحياتي

وعليكم السلام ورحمة الله وبركاته
أستاذي وأخي الفاضل
عبد العزيز البسكري

جزاك الله خيراً وبارك فيك وفي علمك وعملك ونفع بك الأسلام والمسلمين
شكرا للاخوة الافاضل

                                 [b]princelovelorn[/b]
[b]                                                             عبد العزيز البسكري[/b]

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

  الاكواد لا تزال لاتعمل وغالبا المشكلة من النظام او  مشكلة فى الجهاز نفسة

 شكرا لكم جميعا وتنمياتي لكم بالتوفيق
اخي تاكد من وجود الاكسس الذي قكت بتصدير البيانات اليه هل هو مثبت ام لا.
الاكسيل غير مثبت لكن يستعمل نسخة بورتابل

شكرا على هذا الملحوظ لأن مخدش بالي خالص منها 
لكن بيتم استيراد الملف ويتم قراءتة فى البرنامج دون مشاكل
المفروض التصدير يتم بدون مشاكل 
بغض النظر الأوفيس مثبت ام لا
البرمجة مهمتها الحلول والتسهيل
وشكرا على الملاحظة هجرب  وهخبركم بالنتيجة
الى الاستاذ    [b]عبد العزيز البسكري[/b]

شكرا جدا ليك فعلا الكود الخاص بيك شغال تمام بدون مشاكل

لقد قمت بتنصيب الاكسيل واشتغل الكود تمام

وجاري التعديل على الكودين