2016-06-20 7 views
0

ich Daten von einem Datagridview abzurufen bin versucht, aber ich den Fehler erhalte: „Excel Datei nicht öffnen kann, weil das Dateiformat oder Erweiterung nicht gültig ist“eine Excel-Datei aus einem Datagridview Erstellen zurückkehren einen Fehler

Hier ist mein Code:

Private Sub ExcelOutput_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExcelOutput.Click 
    Dim fileName = "ExcelOutput.xlsx" 
    Dim filePath As String = "H:\" + fileName 
    If Not File.Exists(filePath) Then 
     File.Create(filePath).Close() 
    End If 

    Dim sb As New StringBuilder() 
    Dim line As String = "" 
    Dim d As String = "," 
    For Each c As DataGridViewColumn In DataGridView1.Columns 
     line = line + c.Name & d 
    Next 
    sb.AppendLine(line) 
    For Each r As DataGridViewRow In DataGridView1.Rows 
     line = "" 
     For i As Integer = 0 To DataGridView1.Columns.Count - 1 
      line = Convert.ToString(line & (i).ToString()) & d 
     Next 
     sb.AppendLine(line) 
    Next 

    File.WriteAllText(filePath, sb.ToString()) 

End Sub 

die Datei wird erstellt, mit dem Dateinamen „ExcelOutput.xlsx“ aber ich bekomme diesen Fehler, wenn ich versuche, es zu öffnen. Nicht sicher, warum

+1

Sie scheinen zu versuchen, eine CSV (Comma Separated Values) Datei zu erstellen, aber Sie sind es geben eine Erweiterung „.xlsx“, die eine XML Excel-Datei. Geben Sie der Datei eine Erweiterung von ".csv". – Blackwood

+0

Ich bin nicht sehr schlau. Danke Blackwood – Nonagon

Antwort

1

Dumping diese Daten in eine Datei und geben Sie eine .xlsx-Dateierweiterung macht es nicht wirklich eine gültige Excel-Datei.

Ändern Sie die Dateierweiterung in .CSV und es wird ordnungsgemäß geöffnet.

Wenn Sie mit Excel-Dateien arbeiten möchten, würde ich empfehlen, die Office.Excel.Interop-Bibliothek nachzuschlagen. Hier ist ein guter Anfang:

http://www.dotnetperls.com/excel

Verwandte Themen