1. 程式人生 > 實用技巧 >c#中使用OLEDB簡單操作Excel檔案

c#中使用OLEDB簡單操作Excel檔案

使用OLEDB操作Excel

關於OLEDB介紹參考

http://www.cnblogs.com/moss_tan_jun/archive/2012/07/28/2612889.html

連線字串(fileName表示檔名)

"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\""; //舊版本.xls

"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\""; //新版本

.xlsx

操作程式碼如下:

static void Main(string[] args)
{
    string fileName = @".\..\..\裝備資訊.xls";
    //選擇解析文件格式相匹配的字串
    string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" +
                           ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
    OleDbConnection connection 
= new OleDbConnection(connectString); connection.Open();//建立OleDbConnection物件進行連線資料來源並開啟連線 string sqlCommand = "select * from [Sheet1$]";//定義查詢命令 OleDbDataAdapter adapter = new OleDbDataAdapter(sqlCommand,connection);//使用OleDbDataAdapter識別器物件進行查詢 DataSet dataset = new DataSet();//定義DataSet物件用來存放表資料,可以存放多個表
adapter.Fill(dataset);//使用OleDbDataAdapter.Fill()把查詢的結果填充到DataSet物件中 connection.Close();//查詢完畢後關閉連線 DataTableCollection dataTables = dataset.Tables;//存放所有表的集合 //因為當前xls中只有一個表需要進行操作,直接使用索引獲得即可 DataTable dataTable = dataTables[0];//直接使用[index]索引取得我們要的表,存放在DataTable物件中 DataRowCollection dataRows = dataTable.Rows;//使用DataRowCollection物件存放所有行的集合 //遍歷DataRowCollection物件集合,取得每個行DataRow物件,通過索引取得某行中某列的值 foreach (DataRow row in dataRows) { for (int i = 0; i < row.ItemArray.Length; i++) { Console.Write(row[i]+" "); } Console.WriteLine(); } Console.ReadKey(); }

Excel檔案的內容:

執行結果如下: