Ich versuche, eine ".xlsx" -Datei mit einem OleDbDataAdapter zu lesen. Bitte lesen Sie bis zum Ende des Beitrags, bevor Sie antworten. Hier ist der Code, den ich verwende:C# Fehler beim Lesen der Excel-Datei mit OleDbDataAdapter
private DataTable ExtractDataFromFile(string fileName)
{
DataTable sheetData = new DataTable();
using (OleDbConnection conn = this.returnConnection(fileName))
{
try{
conn.Open();
OleDbDataAdapter sheetAdapter = new OleDbDataAdapter("select * from [Sheet1$]", conn);
sheetAdapter.Fill(sheetData);
}
catch(Exception e)
{
Console.WriteLine(e);
Console.ReadLine();
}
}
return sheetData;
}
private OleDbConnection returnConnection(string fileName)
{
return new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=Excel 12.0;");
}
Aber ich bekomme einen eigenartigen Fehler. Die Excel-Dateien muss ich Abfrage von einem Client, die mir gegeben wurden, und ich bekomme die folgende Fehlermeldung, wenn ich versuche, sie zu öffnen
External table is not in the expected format
Hier ist der Haken: ich bemerkt habe, dass, wenn ich Öffnen Sie eine der Excel-Dateien und manuell speichern Sie es einmal und schließen Sie die Datei, dann kann ich die Datei mit meinem Programm abfragen!
Versuchen Sie, sich durch die Erweiterung nicht täuschen lassen. Öffnen Sie die Datei in einem Texteditor, wenn Sie den Inhalt lesen können, dann ist vielleicht eine CSV-Datei keine XLS – Steve
Vielen Dank für Ihre Antwort. Das Öffnen der Datei mit Notepad ++ gibt mir jedoch XML-Code und nicht den wahren Inhalt der ".xlsx" -Datei. –