Format behalten bei Export nach EXCEL

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von queckjunior.

    Format behalten bei Export nach EXCEL

    Hallo,

    ich exportiere aus einem DataGridView Daten nach EXCEL. Im DataGridView sind mehrere Spalten als Währung dargestellt. Im Excel landen sie aber als nackte Zahlen. Ich hätt gerne, das im EXCEL die Währungsspalten erhalten bleiben.

    Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. Dim xls_Appl As Excel.Application ' Excel Anwendung
    3. Dim xls_Mappe As Excel.Workbook ' Excel Arbeitsmappe
    4. Dim xls_Blatt As Excel.Worksheet ' Excel Blatt (Tabelle)
    5. Dim Anzahlzeilen As Integer
    6. xls_Appl = New Excel.Application() ' Excel Instanz bilden
    7. xls_Appl.Visible = True
    8. xls_Mappe = xls_Appl.Workbooks.Add()
    9. xls_Blatt = xls_Mappe.ActiveSheet
    10. 'hier muß der Name des zu exportierenden DataGridViews reinWith Pr_mg_legierungDataGridViewFor Spalte As Integer = 0 To .Columns.Count - 1
    11. xls_Blatt.Cells(1, Spalte + 1).Value = .Columns(Spalte).HeaderText
    12. xls_Blatt.Cells(1, Spalte + 1).Font.Bold = True
    13. Next
    14. Anzahlzeilen = .Rows.Count
    15. 'If .AllowUserToAddRows = True Then
    16. ' Anzahlzeilen = Anzahlzeilen - 1 ' Leerzeile abziehen
    17. 'End IfFor Zeile As Integer = 0 To Anzahlzeilen - 1For Spalte As Integer = 0 To .Columns.Count - 1
    18. xls_Blatt.Cells(Zeile + 2, Spalte + 1).Value() _
    19. = .Rows(Zeile).Cells(Spalte).Value()
    20. Next
    21. Next
    22. End WithEnd Sub




    Wie kann ich das anstellen?



    Danke !

    queckjunior
    Hi,

    füge mal zwischen Zeile 17 + 18 folgende Zeile ein. Also quasi bevor du in die Excel Mappe schreibst.

    VB.NET-Quellcode

    1. xls_Blatt.Cells(Zeile + 2, Spalte + 1).NumberFormat = "#.##0,00 €"


    Damit formatierst du die Zelle als Währung, bevor du den Wert übergibst.

    Gruß
    HerrFrie

    EDIT : Du solltest allerdings noch selektieren welche Zellen so formatiert werden sollen, sonst werden ALLE Zellen als Währung formatiert. Sowas wie

    VB.NET-Quellcode

    1. Select Case .Columns(Spalte).Name
    2. Case "Preis"
    3. xls_Blatt.Cells(Zeile + 2, Spalte + 1).NumberFormat = "#.##0,00 €"
    4. Case Else
    5. End Select

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „HerrFrie“ ()