تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة عند تحويل البيانات من الداتاقريدفيو الى الإكسل
#1
السلام عليكم ورحمة الله وبركاته 

يظهر لي هذا الخطأ عن نقل البيانات من الداتاقريدفيو إلى الإكسل
: Invalid index. (استثناء من HRESULT: 0x8002000B (DISP_E_BADINDEX))

والكود المستخدم 


Imports Microsoft.Office.Interop.Excel

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For s As Integer = 1 To 10
            DataGridView1.Rows.Add(s, "bader" & s)
        Next
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Try

        Dim exlapp As New Application
        Dim exlworkbook As Workbook
        Dim exlworksheet As Worksheet
        Dim misvalue As Object = System.Reflection.Missing.Value

        exlworkbook = exlapp.Workbooks.Add(misvalue)
        exlworksheet = exlworkbook.Sheets("Sheet1")

        For i As Integer = 0 To DataGridView1.RowCount - 2
            For j As Integer = 0 To DataGridView1.ColumnCount - 1
                exlworksheet.Cells(i + 1, j + 1) = DataGridView1.Rows(1).Cells(j).Value.ToString


            Next
        Next

        sfd.Filter = "Excel files|*.xlsx|Excel 2003|*.xls"
        If sfd.ShowDialog = System.Windows.Forms.DialogResult.OK Then
            exlworksheet.SaveAs(sfd.FileName)
        End If

        exlworkbook.Close()
        exlapp.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlapp)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworkbook)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworksheet)
        exlapp = Nothing
        exlworkbook = Nothing
        exlworksheet = Nothing

        Process.Start(sfd.FileName)

 End Sub



   
لكم جزيل الشكر 
دمتم بود
الرد
تم الشكر بواسطة:
#2
بالنسبة لي الكود يعمل بكفاءة
شرط وجود لعمدة في الداتا جريد

انظر المرفق


الملفات المرفقة
.rar   Export to Exel.rar (الحجم : 76.26 ك ب / التحميلات : 4)
الرد
تم الشكر بواسطة: أبووسم , أبووسم
#3
السلام عليكم  
مشكور أخي على اهتمامك وردك السريع 
للأسف نفس المشكلة  علماً  أني استخدم فيجوال بيسك 2013 والأكسل 2019  


دمتم بود 

لكم جزيل الشكر
الرد
تم الشكر بواسطة:
#4
(09-10-21, 01:32 AM)جيولوجي مبتدئ كتب : السلام عليكم ورحمة الله وبركاته 

يظهر لي هذا الخطأ عن نقل البيانات من الداتاقريدفيو إلى الإكسل
: Invalid index. (استثناء من HRESULT: 0x8002000B (DISP_E_BADINDEX))

والكود المستخدم 


Imports Microsoft.Office.Interop.Excel

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For s As Integer = 1 To 10
            DataGridView1.Rows.Add(s, "bader" & s)
        Next
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Try

        Dim exlapp As New Application
        Dim exlworkbook As Workbook
        Dim exlworksheet As Worksheet
        Dim misvalue As Object = System.Reflection.Missing.Value

        exlworkbook = exlapp.Workbooks.Add(misvalue)
        exlworksheet = exlworkbook.Sheets("Sheet1")

        For i As Integer = 0 To DataGridView1.RowCount - 2
            For j As Integer = 0 To DataGridView1.ColumnCount - 1
                exlworksheet.Cells(i + 1, j + 1) = DataGridView1.Rows(1).Cells(j).Value.ToString


            Next
        Next

        sfd.Filter = "Excel files|*.xlsx|Excel 2003|*.xls"
        If sfd.ShowDialog = System.Windows.Forms.DialogResult.OK Then
            exlworksheet.SaveAs(sfd.FileName)
        End If

        exlworkbook.Close()
        exlapp.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlapp)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworkbook)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exlworksheet)
        exlapp = Nothing
        exlworkbook = Nothing
        exlworksheet = Nothing

        Process.Start(sfd.FileName)

 End Sub



   
لكم جزيل الشكر 
دمتم بود

ياليت حددت الخطا حصل عن اي سطر

لكن يمكن الخطا اسم Sheet1
جرب تعدله بالتالي
exlworksheet = exlworkbook.Sheets(1)

اذا استمر الخطا ححد السطر اللي وقف عنده وظهرت رساله الخطا
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] حل مشكلة تشغيل برنامج يعمل ب net framework 4.5 عبدالكريم برشدان 0 31 , 04:30 PM
آخر رد: عبدالكريم برشدان
  [VB.NET] حل مشكلة فتح مشروع قديم ibrahimhuseen828 2 242 , 03:43 AM
آخر رد: ibrahimhuseen828
  [سؤال] لدي مشكلة في عمل لوحة دخول مرتبطة في قاعدة بيانات اكسس مجـ متعلم ـرد 2 107 20-10-21, 08:48 PM
آخر رد: مجـ متعلم ـرد
  استعلام يرجع اسماء الاعمدة و نوع البيانات في جدول معين بسام محمدغانم 0 74 18-10-21, 11:55 PM
آخر رد: بسام محمدغانم
  [VB.NET] مساعدة في تحويل هذا الكود و جعله يعمل Necro PC 2 166 15-10-21, 03:08 PM
آخر رد: Necro PC
  مشكلة في توليد arabic qr code osmana2005 6 4,392 10-10-21, 04:49 PM
آخر رد: mahtawfik
  [VB.NET] حل مشكلة (لم يتم اغلاق الاتصال . حالة الاتصال الحالية هي مفتوح) saramustafa182 1 184 07-10-21, 11:32 AM
آخر رد: asemshahen5
  [VB.NET] حل مشكلة (لم يتم اغلاق الاتصال . حالة الاتصال الحالية هي مفتوح) saramustafa182 1 216 06-10-21, 08:33 PM
آخر رد: ابو انس
  [VB.NET] حل مشكلة (لم يتم اغلاق الاتصال . حالة الاتصال الحالية هي مفتوح) saramustafa182 0 127 06-10-21, 07:07 PM
آخر رد: saramustafa182
  [VB.NET] مشكلة تظهر عند تنصيب فيجوال ستوديو 2019 اباذر 4 3,472 04-10-21, 03:57 PM
آخر رد: Mohammed_khalil

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم