Heim > Backend-Entwicklung > C++ > Warum erhält mein C# -Code beim Lesen von Excel -Dateien eine 'externe Tabelle nicht im erwarteten Format' -Fehler und wie kann ich ihn beheben?

Warum erhält mein C# -Code beim Lesen von Excel -Dateien eine 'externe Tabelle nicht im erwarteten Format' -Fehler und wie kann ich ihn beheben?

Linda Hamilton
Freigeben: 2025-01-26 17:31:39
Original
624 Leute haben es durchsucht

Why Does My C# Code Get an

Beheben Sie den Fehler „Das externe Tabellenformat stimmt nicht überein“, der auftritt, wenn C#-Code Excel-Dateien liest

Wenn Sie OleDbDataAdapter zum Lesen von Excel-Dateien (xlsx) verwenden, kann die Fehlermeldung „Externes Tabellenformat stimmt nicht überein“ auftreten. Dieser Fehler tritt normalerweise auf, wenn sich die XLSX-Datei an einem freigegebenen Netzwerkspeicherort befindet und zuvor nicht in Microsoft Excel geöffnet wurde.

Frage:

Wenn Sie eine XLSX-Datei mit dem folgenden Code lesen, wird ein Fehler auftreten, es sei denn, die Datei ist bereits in Excel geöffnet:

<code class="language-c#">string sql = "SELECT * FROM [Sheet1$]";
string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";

using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) {
    DataSet ds = new DataSet();
    adaptor.Fill(ds);
}</code>
Nach dem Login kopieren

Lösung:

Um diesen Fehler zu beheben und Excel-Dateien zu lesen, ohne die Datei vorher zu öffnen, muss die Verbindungszeichenfolge aktualisiert werden. Die Fehlermeldung lautet „Konflikt beim externen Tabellenformat“, da die Verbindungszeichenfolge ein altes Format verwendet, das mit dem Excel 2007-Dateiformat nicht kompatibel ist.

Die empfohlene Lösung besteht darin, die Verbindungszeichenfolge durch Folgendes zu ersetzen:

<code class="language-c#">string path = @"C:\src\RedirectApplication\RedirectApplication1s.xlsx";
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";</code>
Nach dem Login kopieren

Diese aktualisierte Verbindungszeichenfolge verwendet den Microsoft.ACE.OLEDB.12.0-Anbieter und legt die erweiterten Eigenschaften auf Excel 12.0 fest. Diese Kombination ist mit den Dateiformaten von Excel 2007 und höher kompatibel und sollte Fehler aufgrund der Nichtübereinstimmung des externen Tabellenformats beheben.

Das obige ist der detaillierte Inhalt vonWarum erhält mein C# -Code beim Lesen von Excel -Dateien eine 'externe Tabelle nicht im erwarteten Format' -Fehler und wie kann ich ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage