تقييم الموضوع :
  • 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 ك ب / التحميلات : 16)
الرد }}}
تم الشكر بواسطة: أبووسم , أبووسم
#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)

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



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


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