- 首先需要先從 NuGet 包管理器中安裝 System.Data.OleDb
- 類中引入需要用到的命名空間
- 上代碼(連接字符串直接百度)
string file_name = "test.xls";//文件路徑,此處爲了省事,直接把文件放到了bin->Debug->netcoreapp3.1文件夾下(demo是一個.Net Core的控制檯項目) string conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_name + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";//連接數據源所用的字符串 OleDbConnection con = new OleDbConnection(conString);//創建連接 con.Open();//打開連接 string sql = "select * from [Sheet1$]";//查詢語句 OleDbDataAdapter adp = new OleDbDataAdapter(sql, con);//執行查詢語句 DataSet ds = new DataSet();//可以理解未內存中的一個數據庫,裏邊會有多張表 adp.Fill(ds);//將查詢結果填充到DataSet中 con.Close();//關閉連接 con.Dispose();//釋放資源 DataTableCollection datatable_collection = ds.Tables;//得到一個數據表的集合 DataTable dt = datatable_collection[0];//第一張表就是我們的數據 foreach (DataRow dr in dt.Rows) { Console.WriteLine($"{dr[0]} {dr[1]} {dr[2]}"); } Console.ReadKey();
-
執行結果
--------------------------------------------------------------------------------------------------------------------------------------------------------------
這裏分享兩個比較實用的東西
1.按照我上邊的步驟做了,但是報錯(The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine)
這是因爲你的電腦上缺少 office的數據連接組件(AccessDatabaseEngine)
可以下載我給的這個,親測好用
2.對於連接數據源的連接字符串各個參數的說明
Provider:連接提供者
Data Source:數據源地址(對於本文對應的就是Excel文件的路徑)
HDR :” YES 表示第一行包含列名,而不是數據。“ HDR =NO;” 表示相反。
IMEX:0 表示寫入權限 1 表示只讀 2擁有讀寫權限