Hello all;

I am trying to generate an excel file from a DataGridView, but I am getting an error (HRESULT : 0x800A03EC) when I do something like

vb.net Code:
  1. xlSheet.Cells(y + 2, x + 1) = DataGridView1.Item(y, x)


As it seems the errors is because the column type is a button (Delete button)


I Think the solution is to check before making the mentionned line of code the type of the item(x,y), so how to do this please ?



Here is the full code that I am using, based on an article i FOUND on the net, if you have a better way to generate excel from DataGrid please let me know




vb.net Code:
  1. Dim xlApp As Excel.Application
  2.         Dim xlBook As Excel.Workbook
  3.         Dim xlSheet As Excel.Worksheet
  4.         Dim ds As DataSet
  5.         ds = New DataSet
  6.         ds = oData
  7.  
  8.         Try
  9.  
  10.        
  11.  
  12.             xlApp = CType(CreateObject("Excel.Application"), Excel.Application)
  13.             xlBook = CType(xlApp.Workbooks.Add, Excel.Workbook)
  14.             xlSheet = CType(xlBook.Worksheets(1), Excel.Worksheet)
  15.  
  16.             ' ici on compte le nombre de lignes et de colonnes du datatable
  17.             Dim nbrLigne As Integer = ds.Tables("DECLARATION").Rows.Count - 1
  18.             Dim nbrColon As Integer = ds.Tables("DECLARATION").Columns.Count - 1
  19.             Dim x, y As Integer
  20.  
  21.             For x = 0 To nbrColon
  22.                 ' ici on prends le titre des colonnes du datatable
  23.                 xlSheet.Cells(1, x + 1) = ds.Tables("DECLARATION").Columns(x).ColumnName
  24.                 ' on mets la première ligne en gras
  25.                 xlSheet.Rows(1).Font.Bold = True
  26.  
  27.                 ' pour chaque colonne et chaque ligne on transfert les données      
  28.                 For y = 0 To nbrLigne
  29.                     xlSheet.Cells(y + 2, x + 1) = DataGridView1.Item(y, x)
  30.                 Next
  31.             Next
  32.  
  33.  
  34.  
  35.  
  36.             ' ici on affiche les résultat dans excel
  37.             xlSheet.Application.Visible = True
  38.             ' on peut sauvegarder notre document sur le disque
  39.             xlSheet.SaveAs("c:\Documents and Settings\developpeur1\Bureau\MonExcel.xlsx")
  40.             ' on quitte l'application et on détruit les objets
  41.             xlApp.Quit()
  42.             xlSheet = Nothing
  43.             xlBook = Nothing
  44.             xlApp = Nothing
  45.  
  46.  
  47.         Catch ex As Exception
  48.             MsgBox(ex.Message)
  49.         End Try
  50.  
  51.  
  52.     End Sub