ExcelToDataTable

2022-08-05 14:39:13 字數 892 閱讀 3792

用oledb通過設定連線字串可以像讀取sqlserver一樣將excel中的資料讀取出來,但是excel2003和excel2007/2010的連線字串是不同的

///

/// 把資料從excel裝載到datatable

///

/// 帶路徑的excel檔名

/// 工作表名

/// 將資料存入的datatable

///

public datatable exceltodatatable(string pathname, string sheetname)

fileinfo file = new fileinfo(pathname);

if (!file.exists)

string extension = file.extension;

switch (extension)

//連結excel

oledbconnection cnnxls = new oledbconnection(strconn);

//讀取excel裡面有 表sheet1

oledbdataadapter oda = new oledbdataadapter(string.format("select * from [$]", sheetname), cnnxls);

dataset ds = new dataset();

//將excel裡面有表內容裝載到記憶體表中!

oda.fill(tbcontainer);

return tbcontainer;

}這裡需要注意的地方是,當檔案的字尾名為.xlsx(excel2007/2010)時的連線字串是"provider=microsoft.ace.oledb.12.0;....",注意中間紅色部分不是"jet"。