Récemment, j'ai travaillé sur un projet visant à permettre à l'utilisateur d'envoyer les données complétées dans DataGridView sous forme de tableau Excel, et tout d'abord la table doit être enregistré dans le PC de l'utilisateur. J'utilise le code affiché ci-dessous:Exportation de données à partir de DataGridView en tant que tableau Excel à l'aide de VB.NET
Private Sub Bt2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt2.Click
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Int16, j As Int16
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
For i = 0 To dg.RowCount - 2
For j = 0 To dg.ColumnCount - 1
xlWorkSheet.Cells(i + 1, j + 1) = dg(j, i).Value.ToString()
Next
Next
xlWorkBook.SaveAs("C:\Users\Abstract\Desktop\file1.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
xlWorkBook.Close(True, misValue, misValue)
xlApp.Quit()
releaseObject(xlWorkSheet)
releaseObject(xlWorkBook)
releaseObject(xlApp)
MessageBox.Show("Over")
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
MessageBox.Show("Exception Occured while releasing object " + ex.ToString())
Finally
GC.Collect()
End Try
End Sub
L'utilisateur clique sur le bouton pour enregistrer son DataGrid sous forme de tableau Excel. Cependant, après avoir fait cela, je reçois une exception (à la première rangée, où je mis xlApp en application Excel) avec le texte suivant:
COM Exception Ocurred
Exception thrown: 'System.Runtime.InteropServices.COMException' in trimitere_excel.exe
Additional information: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
J'ai cherché pendant presque 2 jours pour obtenir plus de cela, mais rien que j'ai trouvé résolu mon problème. Si vous avez une idée de ce que je devrais faire, je serais vraiment reconnaissant pour tout conseil qui pourrait me sortir de cette situation! Passez une bonne journée! :)
J'ai essayé avant et ne fonctionne pas (oublié de coller les importations dans l'exemple de code ainsi, mon mauvais) –
Pourriez-vous s'il vous plaît me dire si vous ajoutez une référence à la bibliothèque d'objets Microsoft Excel à votre projet? –
Voulez-vous dire Microsoft.Office.Interop.Excel? –