تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كود تصدير قاعدة البيانات إلى ملف Excel
#3
السلام عليكم ورحمة الله وبركاته
اخي محمد العامر واضح انك تستخدم اوفيس 2003 وهي المشكلة
من خلال تجربتي السابقة مع التصدير الى اكسل الامر يتعلق بنسخة الاوفيس التي تستخدمها (المعروف ان برامجنا كلها مقرصنة والكثير منها ملفاته ناقصة)
كنت فيما مصى استخدم اوفيس 2003 وعند التصدير الى اكسل كان يظهر لي الخطأ بفشل عملية التصدير وعانيت الكثير منها في الوقت الذي كان غيري تنجح معه العملية ولكن لاأحد كان ينتبه الى نسخة الاوفيس المستخدمة لان هناك ملفات Dll تستخدم في العملية لاستقبال التصدير المشكلة لاتظهر مع نسخة اعلى من 2003
المهم قمت (بالاحتيال ) ونفس الكود جعلته يعيد المحاولة حتى يقوم بالعملية والان انا استحدم اوفيس 2016 ومن باب التجربة من بعد سؤالك فتحت المشروع السابق والغيت عبارة اعادة المحاولة وكانت المفاجأة بان عمل الكود نفسه بكفاءة عالية وسأورد لك الكود ولاحط هذه الجملة 
كود :
'GoTo gg ' اضطررت لاستخدام هذه العبارة وضحكت من نفسي على استخدامها
التي كنت قد وضعتها في Catch ex As Exception وكتبت بجانبها وقتها تعليق بالعربية
وموقع gg ليعيد المحاولة 
الان الغيتهما  اليك الكود
كود :
Private Sub Btn_ExToExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_ExToExcel.Click
       If dgv_table.Rows.Count = 0 Then
           Exit Sub
       Else
           System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
           System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
           'gg:
           Try
               Dim xlApp As New Application
               Dim excelworkBook As Microsoft.Office.Interop.Excel.Workbook = xlApp.Workbooks.Add
               Dim excelWorksheet As Microsoft.Office.Interop.Excel.Worksheet = CType(excelworkBook.Worksheets(1), Worksheet)
               xlApp.Visible = False
               Dim currCol As Integer = 1
               excelWorksheet.Cells.Select()
               excelWorksheet.Cells.Delete()
               For iC As Integer = 0 To dgv_table.Columns.Count - 1
                   If dgv_table.Columns(iC).Visible = True Then
                       excelWorksheet.Cells(1, currCol).Value = dgv_table.Columns(iC).HeaderText
                       currCol += 1
                   End If
               Next
               For i As Integer = 0 To dgv_table.RowCount - 2
                   currCol = 1
                   For j As Integer = 0 To dgv_table.Columns.Count - 1
                       If dgv_table.Columns(j).Visible = True Then
                           excelWorksheet.Cells(i + 2, currCol).value = dgv_table.Rows(i).Cells(j).FormattedValue
                           currCol += 1
                       End If
                   Next
               Next

               excelWorksheet.Rows("1:1").Font.FontStyle = "Normal"
               excelWorksheet.Rows("1:1").Font.Size = 10
               excelWorksheet.Cells.Columns.AutoFit()
               excelWorksheet.Cells.Select()
               excelWorksheet.Cells.EntireColumn.AutoFit()
               excelWorksheet.Cells(1, 1).Select()
               xlApp.Visible = True
           Catch ex As Exception
               'GoTo gg ' اضطررت لاستخدام هذه العبارة وضحكت من نفسي على استخدامها
               'MsgBox("Export Excel Error " & ex.Message)
               MsgBox("فشلت عملية التصدير حاول مرة ثانية")
           Finally
               System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default

           End Try
       End If
   End Sub
ملاحظة : غير اسم الداتا غرايد من dgv_table الى اسم الداتاغرايد التي تستخدمها
وهناك شيئ أخر هو هذا السطر 
كود :
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
حيث سيظهر الجدول بالتنسيق الانكليزي اي يسار ان اردت اظهاره من اليمين استخدم بدلا 
منه هذا السطر
كود :
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("ar-SA")
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}


الردود في هذا الموضوع
RE: كود تصدير قاعدة البيانات إلى ملف Excel - بواسطة ابراهيم ايبو - 03-05-20, 10:53 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يمكن تصدير ascx كملف dll justforit 1 135 06-12-25, 12:33 AM
آخر رد: salamandal
  تصدير البيانات إلى ملف RTF مصمم هاوي 4 829 15-08-25, 04:13 PM
آخر رد: أبو خالد الشكري
  [VB.NET] ما هو أفضل موقع استضافة لقواعد البيانات MSSQL ؟ mmaalmesry 0 796 16-07-25, 10:45 PM
آخر رد: mmaalmesry
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,243 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  مشكلة في حفظ البيانات مصمم هاوي 2 1,023 30-06-25, 08:51 AM
آخر رد: مصمم هاوي
  بطء في جلب البيانات مصمم هاوي 9 1,002 08-05-25, 07:51 AM
آخر رد: مصمم هاوي
  [Acces2007] مشكلة ملف قاعدة بيانات access للقراءة فقط mmaalmesry 11 1,470 29-04-25, 08:55 PM
آخر رد: mmaalmesry
  تعديل كود تحديث البيانات مصمم هاوي 1 784 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
Photo لايمكن تعرف على تنسيق قاعدة البيانات الدريساوي 2 697 26-04-25, 12:24 AM
آخر رد: الدريساوي
  مساعدة في طريقة تحميل الفيديوهات المخزنة في قاعدة البيانات foad8920 0 662 24-04-25, 12:58 PM
آخر رد: foad8920

التنقل السريع :


يقوم بقرائة الموضوع: