2017-02-24 3 views
0

Ich habe versucht, Textdatei und XML-Datei mit File Class lesen, es funktioniert gut.Ich frage mich, ob wir Excel oder Word oder andere Arten lesen können.Welche Dateiarten können mit der Dateiklasse C# gelesen werden?

var str = File.ReadAllLines("Test.xlsx"); 

Während des Debuggens str zeigt Sonderzeichen.
Hoffe ich hatte Frage klar gemacht.Kindly Advice
Down-Stimmen sind willkommen, wenn sie von richtigen Kommentar zu verbessern :). Vielen Dank im Voraus.

+2

mit File.ReadAllLines erhalten Sie nur Text aus der Datei, so ist die Antwort: jede Datei mit Text im Inneren :) –

+2

Sie können sich [EPPlus] (https://www.nuget.org/packages/ EPPlus), wenn Sie mit Excel-Dateien arbeiten müssen. –

+0

Danke @MaksimSimkin – Hitsa00

Antwort

1

XML- und Textdateien sind einfache Dateien, in denen Text auf dem Bildschirm wie in der Datei angezeigt wird. Deshalb arbeiten File.ReadAllLines.

Mit Excel ist es anders. Es hat eine codierte Logik in einer Datei, die, wenn sie von einem speziellen Programm gelesen wird (MSExcel lesen), es dekodiert und es korrekt auf dem Bildschirm anzeigt.

Betrachten Sie es als eine verschlüsselte oder verschleierte Datei, die von Programmen gelesen wird, die speziell dafür definiert sind, sie zu entschlüsseln.

Excel-Datei in DotNet zu lesen, können Sie sie in DataSet/DataTable wie diese Read Excel File in C# (Example)

+0

Sie brauchen nicht Interop mit 'xlsx' Dateien," nur "Open XML oder EPPlus. Die Datei ist ein komprimiertes Paket von XML-Dateien, so dass man * den Inhalt als Text behandeln kann. Es ist nicht * verschleiert * - es ist ein wohldefiniertes Format –

+0

Zustimmen zu einem Punkt, aber selbst wenn diese Datei als XML geöffnet wird, wird es keinen Sinn machen. Um sinnvoll zu sein, benötigen Sie MsExcel oder DataSet/DataTable. –

+0

Das war nur für das alte 'xls' Format. Sie können 'xlsx' als Excel-Tabelle mit [Open XML SDK von Microsoft] lesen (https://msdn.microsoft.com/de-de/library/office/gg575571.aspx) oder einer der Bibliotheken, die das Format verstehen. Danach können Sie [LINQ] (https://epplus.codeplex.com/wikipage?title=LinqExample) abfragen, wenn Sie möchten. Der springende Punkt des Open-Office-XML-Standards war, dass Sie Excel oder OLEDB zum Lesen der Dateien nicht benötigen –

1

Mit File.ReadAllLines übertragen verwenden werden Sie Textdateien lesen kann (und XML ist -wie wir auch eine Textdatei Know).

Natürlich liest die Funktion auch andere Arten von Datendateien - aber Sie erhalten keine aussagekräftigen Ergebnisse. Die Binärdaten werden als Zeichen interpretiert. Dies funktioniert nicht für Office-Dateien.

1

The MSDN documentation for File.ReadAllLines() heißt:

Dieses Verfahren versucht, um automatisch die Codierung einer basierend auf dem Vorhandensein von Bytereihenfolge Markierungen Datei zu erfassen. Kodierungsformate UTF-8 und UTF-32 (sowohl Big-Endian und Little-Endian) können erkannt werden.

Daher können Sie Textdateien mit einer der unterstützten UTF-Kodierungen lesen. Um Dateien zu lesen, die andere Kodierungen verwenden (z. B. Windows ANSI, nicht lateinischer Text), sollten Sie die Überladung verwenden, die einen Encoding Parameter verwendet.

Verwandte Themen