Hallo Zusammen,
Ich habe ein Datagridview mit 8 Spalten, davon sind 2 Spalten Gebundene Combobox Felder.
Nun wenn ich dieses DGV mit folgendem Code Exportieren möchte:
Nun ist das Prolbem das bei den Combobox-Spalten die ArtikelID hingeschriben wird und nicht den Werte-Text.
Kann mir jemand helfen?
Ich habe ein Datagridview mit 8 Spalten, davon sind 2 Spalten Gebundene Combobox Felder.
Nun wenn ich dieses DGV mit folgendem Code Exportieren möchte:
VB.NET-Quellcode
- If System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Stückliste.xls") Then
- Kill(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Stückliste.xls")
- End If
- Me.Artikel_stuecklisteBindingSource.Sort = "id ASC"
- If ((Artikel_stuecklisteDataGridView.Columns.Count = 0) Or (Artikel_stuecklisteDataGridView.Rows.Count = 0)) Then Exit Sub
- Dim XlApp = New Excel.Application With {.Visible = True}
- XlApp.Workbooks.Add(Excel.XlSheetType.xlWorksheet)
- Dim xlWS = XlApp.ActiveSheet
- xlWS.Name = "Stückliste"
- 'Copy visible data from DGV to Excel
- Dim columnCollection As DataGridViewColumnCollection = Artikel_stuecklisteDataGridView.Columns
- Dim currentVisibleColumn As DataGridViewColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
- Dim lastColumnExported As DataGridViewColumn = currentVisibleColumn
- Dim visibleColumnCount As Integer = columnCollection.GetColumnCount(DataGridViewElementStates.Visible)
- 'Finally export the data
- For c = 1 To visibleColumnCount
- xlWS.Cells(1, c) = currentVisibleColumn.HeaderText
- currentVisibleColumn = columnCollection.GetNextColumn(lastColumnExported, DataGridViewElementStates.Visible, DataGridViewElementStates.None)
- lastColumnExported = currentVisibleColumn
- Next
- 'Only export visible cells
- For r = 0 To Artikel_stuecklisteDataGridView.Rows.Count - 1
- 'Reset values
- currentVisibleColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
- lastColumnExported = currentVisibleColumn
- For c = 1 To visibleColumnCount
- Dim value = Artikel_stuecklisteDataGridView.Rows(r).Cells(currentVisibleColumn.Index).Value
- If value.ToString <> vbNullString Then
- xlWS.Cells(r + 2, c) = value.ToString()
- End If
- currentVisibleColumn = columnCollection.GetNextColumn(lastColumnExported, DataGridViewElementStates.Visible, DataGridViewElementStates.None)
- lastColumnExported = currentVisibleColumn
- Next
- Next
- 'Autosize columns in excel
- Dim columns = xlWS.UsedRange.Columns
- columns.AutoFit()
- XlApp.DisplayAlerts = False 'vor dem Speichern - vermeidet eventuelle Dialoge
- xlWS.SaveAs(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "/" & Id_anlageTextBox1.Text & " - Stückliste.xls")
Nun ist das Prolbem das bei den Combobox-Spalten die ArtikelID hingeschriben wird und nicht den Werte-Text.
Kann mir jemand helfen?