2017-12-06 4 views
1

Ich habe ein seltsames Problem, ich bin eine Excel-Datei (.xls) von einer Website abrufen dann die Daten als JSON, alles funktioniert Datei mit Dummy-Dokument, bis ich begann mit realen Daten zu testen, wenn ich die Datei herunterladen und meinen Code ausführen, bevor Sie es in Excel öffnen, bekomme ich: "Externe Tabelle ist nicht im erwarteten Format.", Wenn ich die Datei in Excel öffnen Excel gibt mir eine Warnung, dass "die Datei in einem anderen Format ist als von der Erweiterung angegeben", aber wenn ich es mit Excel (2010) speichern und die Option für das gleiche Format und die gleiche Erweiterung auswählen, funktioniert es direkt danach. Die Problemumgehung, über die ich nachgedacht habe, ist Excel zu automatisieren, um die Datei nach jedem Download-Zyklus zu öffnen und zu speichern, aber ich würde stattdessen lieber eine echte Lösung finden. Excel Code: var pathToExcel = @"\source\repos\Rica2.0\reports\DataExport.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);OLEDB Externe Tabelle ist nicht im erwarteten Format/Datei in einem anderen Format als die Erweiterung

+0

Das Fehlen von Absätzen und die korrekte Verwendung von Großbuchstaben macht diese Frage ziemlich schwer zu lesen. – mjwills

Antwort

1

Das Problem ist, dass Web-Entwickler eine HTML-Datei mit einer Tabelle erstellen und eine xls Erweiterung eher als eine HTML-Erweiterung geben. Sie wissen, dass Benutzer Dateierweiterungen Associates dazu führen, dass es in Excel geöffnet ist und Excel kann HTML gut analysieren. Und anders als diese nervige Nachricht funktioniert es.

Eine Option ist die Dateierweiterung nach dem Herunterladen auf html zu ändern. Excel wird weiterhin eine HTML-Datei öffnen und Sie werden die Nachricht vermeiden. Und da Sie dies alles programmatisch tun, brauchen Sie die Shell nicht, um herauszufinden, welches Programm über Dateizuordnungen geöffnet werden soll.

+0

Vielen Dank, ich machte das gleiche, änderte die Erweiterung zu xslb für mich, aber gibt es eine andere Möglichkeit, die Datei direkt in C# zu analysieren, ohne sie umzubenennen? das würde bedeuten, einen Verzeichnis-Beobachter für viele verschiedene Verzeichnisse zu erstellen, um nach neuen Downloads zu suchen –

+0

Ja. Es ist nur eine HTML-Datei (Text), so dass Sie es wie jede andere HTML-Datei analysieren können. Ich bin sicher, dass C# eine Bibliothek hat, in der Sie das Tabellen-Tag finden, die tr-Tags durchlaufen und die td-Tags durchlaufen können. Es ist die XML-Bibliothek in VBA, aber ich weiß nicht, was es in C# ist. –

+0

Vielen Dank für die Zeit, um dies zu klären, werde ich es versuchen –

Verwandte Themen