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

  System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
        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 colhead As Integer = 0 To grd.ColumnCount - 1
            exlworksheet.Cells(1, colhead + 1) = grd.Columns(colhead).HeaderText
        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.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

        If MsgBox("هل تريد فتح الملف", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            Process.Start(sfd.FileName)
        End If


الخطا هو  
Invalid index. (استثناء من HRESULT: 0x8002000B (DISP_E_BADINDEX))
الرد }}}
تم الشكر بواسطة: اسامه الهرماوي
#2
شوف اصدار الاكسل عندك لو مش 2003..
المبرمج لا يفكر في المشكلة بل في الحل!!
الرد }}}
تم الشكر بواسطة:



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


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