/// 加載Excel表到DataTable,跟原始Excel表形式一樣,需要篩選自己有用的數(shù)據(jù)
/// </summary>
/// <param name="filename">需要讀取的Excel文件路徑</param>
/// <param name="sheetname">工作表名稱</param>
/// <returns>DataTable</returns>
public static DataTable LoadExcelToDataTable(string filename, string worksheetname)
{
DataTable table;
//連接字符串
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
OleDbConnection myConn = new OleDbConnection(sConnectionString);
string strCom = " SELECT * FROM [" + worksheetname + "$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
table = new DataTable();
myCommand.Fill(table);
myConn.Close();
return table;
}
////////////////////////
//連接字符串
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
這樣,后邊加上"HDR=Yse;IMEX=1",并且這句必須用引號引住,這樣就會把混合類型的數(shù)據(jù)同一當(dāng)作文本讀取,不會出現(xiàn)丟數(shù)據(jù)的現(xiàn)象。