1 private DataTable LoadDataTableFromExcel(string filePath)
2 {
3 try
4 {
5 string strConn;
6 if ("xlsx".Equals(Path.GetExtension(filePath).Substring(1), StringComparison.OrdinalIgnoreCase))
7 strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=No;IMEX=1;'";
8 else
9 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1;'";
10
11 //链接Excel
12 OleDbConnection cnnxls = new OleDbConnection(strConn);
13 cnnxls.Open();
14 DataTable schemaTable = cnnxls.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
15 string tableName = schemaTable.Rows[0][2].ToString().Trim();
16
17 //读取Excel里面有 表tableName
18 OleDbDataAdapter oda = new OleDbDataAdapter("select * from [" + tableName + "]", cnnxls);
19 DataSet ds = new DataSet();
20 //将Excel里面有表内容装载到内存表中!
21 oda.Fill(ds);
22 DataTable dt = ds.Tables[0];
23 return dt;
24 }
25 catch (Exception)
26 {
27 throw;
28 }
29 }