2017-02-24 78 views
0

我曾嘗試閱讀文本文件和XML文件與File Class,它工作正常。我想知道我們是否可以讀取Excel或Word或其他類型。什麼類型的文件可以用文件類C#讀取?

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

調試時,海峽顯示特殊字符。
希望我已經提出了明確的問題。誠摯的建議
如果有適當的評論,以改善:),歡迎垂直投票。 在此先感謝。

+2

與File.ReadAllLines你只從文件中獲得文本,所以答案是:每個文件都帶有純文本:) –

+2

你可以看看[EPPlus](https://www.nuget.org/packages/ EPPlus)如果你需要使用excel文件。 –

+0

謝謝@MaksimSimkin – Hitsa00

回答

1

XML和文本文件是純文件,其中文本顯示在屏幕上,就像它們在文件中一樣。這就是爲什麼File.ReadAllLines工作。

用Excel,它是不同的。它在文件中編碼了邏輯,當被特殊程序讀取(讀取MSExcel)時,它將其解碼並在屏幕上正確顯示。

把它看作是由專門定義的程序讀取的編碼或混淆文件來解密它們。

要閱讀DOTNET的Excel文件,你可以用它們被轉移到DataSet/DataTable這樣Read Excel File in C# (Example)

+0

您不需要與'xlsx'文件進行互操作,「只需」Open XML或EPPlus。該文件是一個壓縮的XML文件包,因此一個*可以*將內容視爲文本。它不是*混淆的* - 它是一個明確的格式 –

+0

同意一個觀點,但即使該文件是以xml打開的,它也沒有任何意義。有意義的你需要MsExcel或者DataSet/DataTable。 –

+0

這隻適用於舊的'xls'格式。您可以使用[Microsoft的Open XML SDK](https://msdn.microsoft.com/zh-cn/library/office/gg575571)將'xlsx'作爲Excel電子表格讀取。aspx)或任何理解格式的庫。之後,如果你願意,[你可以用LINQ查詢](https://epplus.codeplex.com/wikipage?title=LinqExample)。 Open Office XML標準的重點在於您不需要Excel或OLEDB來讀取文件 –

1

隨着File.ReadAllLines可以閱讀文本文件(和XML是-as我們知道 - 以及文本文件)。

當然,函數也會讀取其他類型的數據文件 - 但是不會得到有意義的結果。二進制數據被解釋爲字符。這不適用於Office文件。

1

The MSDN documentation for File.ReadAllLines()指出:

該方法嘗試自動檢測一個文件的基於字節順序標記的存在的編碼。編碼格式UTF-8和UTF-32(包括big-endian和little-endian)都可以被檢測到。

因此,您可以使用其支持的其中一種UTF編碼來讀取文本文件。要讀取使用其他編碼的文件(例如Windows ANSI,非拉丁文本),應使用採用Encoding參數的超載。