ich diesen Code versucht haben, die eine Guss Ausnahme auslöst:Wie die Daten in einem Datagridview in einem EPPlus ExcelWorksheet bekommen
Dim worksheet As ExcelWorksheet = package.Workbook.Worksheets.Add(pageTitle)
Dim dataTable As DataTable
dataTable = dataGridView.DataSource ' cast exception
Ausnahme:
System.InvalidCastException: Kann nicht das Objekt werfen vom Typ 'System.Windows.Forms.BindingSource', um 'Microsoft.Office.Interop.Excel.DataTable' einzugeben.
Ich brauche ein DataTable
das Arbeitsblatt zu setzen:
worksheet.Cells("A1").LoadFromDataTable(dataTable, True)
Die Fehlermeldung scheint klar genug zu sein. Die 'DataSource'-Eigenschaft eines' DataGridView' kann eine von verschiedenen Typen sein, ein möglicher Typ ist 'DataTable' und ein anderer ist' BindingSource'. Ihre Vermutung ist vermutlich eine BindingSource. – Blackwood
Ja, die 'DataSource' ist' BindingSource'. Ich brauche eine 'DataTable', um die Daten im Arbeitsblatt zu setzen. (Ich habe zu Frage hinzugefügt). –
Interessant, dass 'dataTable' ist' Microsoft.Office.Interop.Excel.DataTable' anstelle von 'System.Data.DataTable' - Ich glaube nicht, dass Sie die Interop-Assemblies mit EPPlus verweisen müssen, aber Sie müssen diese Deklaration beheben . Ist die 'BindingSource' ebenfalls eine' DataTable', 'DataSet' oder etwas anderes, da es' DataSource' ist? Es kann so einfach wie sein Dim DatTable als System.Data.DataTable = DirectCast (DirectCast (DataGridView.DataSource, BindingSource) .DataSource, System.Data.DataTable), aber ich glaube nicht, dass Sie uns genügend Informationen gegeben haben sicher wissen. – Mark