/ / OLEDB Externe Tabelle liegt nicht im erwarteten Format / in einer anderen Datei als der Erweiterung vor - c #, Excel, Oledb

OLEDB Externe Tabelle hat nicht das erwartete Format / Datei in einem anderen Format als die Erweiterung - c #, excel, oledb

Ich habe ein seltsames Problem, ich hole einExcel-Datei (.xls) von einer Website, dann die Daten als JSON verfügbar machen, alles funktioniert mit Dummy-Dokument, bis ich mit dem Testen mit realen Daten begonnen habe. Wenn ich die Datei herunterlade und meinen Code ausführte, bevor ich sie in Excel öffne, bekomme ich: "External Tabelle ist nicht im erwarteten Format. ", wenn ich die Datei in Excel öffne, wird mir eine Warnung angezeigt, dass" die Datei ein anderes Format hat als die Erweiterung ", wenn ich sie jedoch mit Excel (2010) speichere und die Option auswähle Option zum Beibehalten des gleichen Formats und der gleichen Erweiterung, nach der es funktioniert. Die Problemumgehung, über die ich nachgedacht habe, ist, Excel zu automatisieren, um die Datei nach jedem Download-Zyklus zu öffnen und zu speichern. Ich würde jedoch lieber eine echte Lösung finden. Excel Code: var pathToExcel = @"sourcereposRica2.0reportsDataExport.xls"; var sheetName = "Export"; var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";", pathToExcel);

Antworten:

1 für die Antwort № 1

Das Problem ist, dass Web-Entwickler eine HTML-Datei erstellenmit einer Tabelle und geben Sie eine xls-Erweiterung statt einer HTML-Erweiterung. Sie wissen, dass Benutzer, die mit Dateierweiterungen von Benutzern arbeiten, bewirken, dass sie in Excel geöffnet werden, und Excel kann HTML-Dateien problemlos analysieren. Und abgesehen von dieser lästigen Nachricht funktioniert es.

Eine Option besteht darin, die Dateierweiterung in zu ändern html Nachdem Sie es heruntergeladen haben. Excel öffnet immer noch eine HTML-Datei, und Sie vermeiden die Meldung. Da Sie dies alles programmgesteuert tun, brauchen Sie nicht die Shell, um herauszufinden, welches Programm über Dateizuordnungen geöffnet werden soll.