我曾嘗試閱讀文本文件和XML文件與File Class,它工作正常。我想知道我們是否可以讀取Excel或Word或其他類型。什麼類型的文件可以用文件類C#讀取?
var str = File.ReadAllLines("Test.xlsx");
調試時,海峽顯示特殊字符。
希望我已經提出了明確的問題。誠摯的建議
如果有適當的評論,以改善:),歡迎垂直投票。 在此先感謝。
我曾嘗試閱讀文本文件和XML文件與File Class,它工作正常。我想知道我們是否可以讀取Excel或Word或其他類型。什麼類型的文件可以用文件類C#讀取?
var str = File.ReadAllLines("Test.xlsx");
調試時,海峽顯示特殊字符。
希望我已經提出了明確的問題。誠摯的建議
如果有適當的評論,以改善:),歡迎垂直投票。 在此先感謝。
XML和文本文件是純文件,其中文本顯示在屏幕上,就像它們在文件中一樣。這就是爲什麼File.ReadAllLines
工作。
用Excel,它是不同的。它在文件中編碼了邏輯,當被特殊程序讀取(讀取MSExcel)時,它將其解碼並在屏幕上正確顯示。
把它看作是由專門定義的程序讀取的編碼或混淆文件來解密它們。
要閱讀DOTNET的Excel文件,你可以用它們被轉移到DataSet
/DataTable
這樣Read Excel File in C# (Example)
您不需要與'xlsx'文件進行互操作,「只需」Open XML或EPPlus。該文件是一個壓縮的XML文件包,因此一個*可以*將內容視爲文本。它不是*混淆的* - 它是一個明確的格式 –
同意一個觀點,但即使該文件是以xml打開的,它也沒有任何意義。有意義的你需要MsExcel或者DataSet/DataTable。 –
這隻適用於舊的'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來讀取文件 –
隨着File.ReadAllLines
可以閱讀文本文件(和XML是-as我們知道 - 以及文本文件)。
當然,函數也會讀取其他類型的數據文件 - 但是不會得到有意義的結果。二進制數據被解釋爲字符。這不適用於Office文件。
The MSDN documentation for File.ReadAllLines()指出:
該方法嘗試自動檢測一個文件的基於字節順序標記的存在的編碼。編碼格式UTF-8和UTF-32(包括big-endian和little-endian)都可以被檢測到。
因此,您可以使用其支持的其中一種UTF編碼來讀取文本文件。要讀取使用其他編碼的文件(例如Windows ANSI,非拉丁文本),應使用採用Encoding
參數的超載。
與File.ReadAllLines你只從文件中獲得文本,所以答案是:每個文件都帶有純文本:) –
你可以看看[EPPlus](https://www.nuget.org/packages/ EPPlus)如果你需要使用excel文件。 –
謝謝@MaksimSimkin – Hitsa00