Hallo zusammen.
Ich lasse mir für einen Excel-Export eine CheckedListView basteln, worin die ColumnHeaders zur Auswahl angezeigt werden.
Die Headers sind ja "lesefreundlich" und können durchaus (je nach Anwendungsfall) auch mal mehrfach vorkommen. Dann gibt's
beim Export natürlich Müll...
Also wollte ich nun gerne, dass nach wie vor der Headertext in der CheckedListbox erscheint, jedoch die DataGridViewColumn ansich ausgelesen wird.
Leider gibt's keinen "versteckten Namen", den ich der Listbox mitgeben kann.
Hat jemand eine Idee?
Aktuell mache ich das so (für den Headertext):
Spoiler anzeigen
Ich lasse mir für einen Excel-Export eine CheckedListView basteln, worin die ColumnHeaders zur Auswahl angezeigt werden.
Die Headers sind ja "lesefreundlich" und können durchaus (je nach Anwendungsfall) auch mal mehrfach vorkommen. Dann gibt's
beim Export natürlich Müll...
Also wollte ich nun gerne, dass nach wie vor der Headertext in der CheckedListbox erscheint, jedoch die DataGridViewColumn ansich ausgelesen wird.
Leider gibt's keinen "versteckten Namen", den ich der Listbox mitgeben kann.
Hat jemand eine Idee?
Aktuell mache ich das so (für den Headertext):
VB.NET-Quellcode
- ''' <summary> Stellt einen Dialog zur Auswahl des Inhalts eins DGV zum Export oder Kopieren bereit. </summary>
- <Extension>
- Public Sub copyExportSelection(dgv As DataGridView, excel As Boolean, Optional orderBy As String = Nothing)
- Using dlg As New dlgDGVcopyExport
- Dim listbox = dlg.chkLbSpalten
- For Each col As DataGridViewColumn In dgv.Columns
- If col.Visible Then
- listbox.Items.Add(col.HeaderText)
- End If
- Next
- For i = 0 To listbox.Items.Count - 1
- listbox.SetItemChecked(i, True) 'alle Items auf Checked setzen
- Next
- If dlg.ShowDialog <> DialogResult.OK Then Return
- Dim lstCol As New List(Of String)
- For Each chkItm In listbox.CheckedItems
- lstCol.Add(chkItm.ToString)
- Next
- Select Case True
- Case dlg._Selection = "all"
- If excel Then
- exportSelectionToExcel(dgv, "Export", lstCol, dlg._header)
- Else
- copySelectionToClipboard(dgv, lstCol, dlg._header)
- End If
- Case dlg._Selection = "marked"
- Dim lstRow = (From rw In dgv.SelectedRows.Cast(Of DataGridViewRow)() Order By rw.Index).ToList
- If excel Then
- exportSelectionToExcel(dgv, "Export", lstCol, dlg._header, lstRow)
- Else
- copySelectionToClipboard(dgv, lstCol, dlg._header, lstRow)
- End If
- End Select
- End Using
- End Sub
"Na, wie ist das Wetter bei dir?"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tragl“ ()