Hallo,
ich lasse mit folgenden Code den Inhalt eines Datagridview in ein Excel Sheet exportieren.
Das funktioniert auch ganz gut, aber in einer Spalte... wo nur Zahlen enthalten sind, lange Artikelnummern... werden diese falsch ausgegeben.
Ich weis mir gerade keinen Rat mehr und bitte euch um eure Hilfe! … Vielleicht kann mir einer sagen woran es liegt.
Anbei Code und auch zwei Bilder... _01 Tatsächlich, _02 Ausgabe...
Gruß
Michl
ich lasse mit folgenden Code den Inhalt eines Datagridview in ein Excel Sheet exportieren.
Das funktioniert auch ganz gut, aber in einer Spalte... wo nur Zahlen enthalten sind, lange Artikelnummern... werden diese falsch ausgegeben.
Ich weis mir gerade keinen Rat mehr und bitte euch um eure Hilfe! … Vielleicht kann mir einer sagen woran es liegt.
Anbei Code und auch zwei Bilder... _01 Tatsächlich, _02 Ausgabe...
VB.NET-Quellcode
- Public Function dgvToExcel(ByVal dgv As DataGridView, Optional ByVal FillHiddenMode As Boolean = True) As Boolean
- Try
- Dim Excel As Excel.Application ' Verweis auf Excel-Application
- Dim EXMappe As Excel.Workbook ' Excel Arbeitsmappe
- Dim EXBlatt As Excel.Worksheet ' Excel Blatt ( Die angezeigte Tabelle)
- Dim AZ As Integer ' Nimmt die Zeilenanzahl auf
- ' neue Instanz von Excel erstellen und ggf. sofort anzeigen
- Excel = New Excel.Application()
- Excel.Visible = Not FillHiddenMode
- ' neue Mappe hinzufügen
- EXMappe = Excel.Workbooks.Add()
- ' aktuelles Blatt anzeigen
- EXBlatt = EXMappe.ActiveSheet
- With dgv
- ' Spaltenüberschriften übertragen
- For Spalte As Integer = 0 To .Columns.Count - 1
- EXBlatt.Cells(1, Spalte + 1).Value = .Columns(Spalte).HeaderText
- Next
- ' Anzahl Datenzeilen
- AZ = .Rows.Count
- If .AllowUserToAddRows = True Then
- ' Leerzeile abziehen
- AZ = AZ - 1
- End If
- ' Datenzeilen übertragen
- For Zeile As Integer = 0 To AZ - 1
- For Spalte As Integer = 0 To .Columns.Count - 1
- EXBlatt.Cells(Zeile + 2, Spalte + 1).Value() =
- .Rows(Zeile).Cells(Spalte).Value.ToString
- Next
- Next
- End With
- ' Excel jetzt anzeigen
- If FillHiddenMode Then Excel.Visible = True
- Return True
- Catch ex As Exception
- ' Fehler
- MsgBox("Fehler beim Übertragen der Daten nach Excel!" & vbCrLf &
- ex.Message, MsgBoxStyle.Exclamation)
- Return False
- End Try
- End Function
Gruß
Michl