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

نسخة كاملة : مشكلة عند تحويل البيانات من الداتاقريدفيو الى الإكسل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته 

يظهر لي هذا الخطأ عن نقل البيانات من الداتاقريدفيو إلى الإكسل
: 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



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

انظر المرفق
السلام عليكم  
مشكور أخي على اهتمامك وردك السريع 
للأسف نفس المشكلة  علماً  أني استخدم فيجوال بيسك 2013 والأكسل 2019  


دمتم بود 

لكم جزيل الشكر
(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)

اذا استمر الخطا ححد السطر اللي وقف عنده وظهرت رساله الخطا