C#将Excel中的数据转换成DataSet

时间:2022-03-02 07:15:33

使用C#在不借助第三方插件的情况下将Excel中的数据转换成DataSet

/// <summary> /// EXCEL数据转换DataSet /// </summary> /// <param>文件全路径</param> /// <param>表名</param> /// <returns></returns> private DataSet GetDataSet(string fileName) { string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=‘Excel 12.0;HDR=Yes;IMEX=1‘;"; OleDbConnection objConn = null; objConn = new OleDbConnection(strConn); objConn.Open(); DataSet ds = new DataSet(); //List<string> List = new List<string> { "收款金额", "代付关税", "垫付用度", "超期", "到账利润" }; List<string> List = new List<string> { }; DataTable dtSheetName = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); foreach (DataRow dr in dtSheetName.Rows) { if (dr["Table_Name"].ToString().Contains("$") && !dr[2].ToString().EndsWith("$")) { continue; } string s = dr["Table_Name"].ToString(); List.Add(s); } try { for (int i = 0; i < List.Count; i++) { ds.Tables.Add(List[i]); string SheetName = List[i]; string strSql = "select * from [" + SheetName + "]"; OleDbDataAdapter odbcCSVDataAdapter = new OleDbDataAdapter(strSql, objConn); DataTable dt = ds.Tables[i]; odbcCSVDataAdapter.Fill(dt); } return ds; } catch (Exception ex) { return null; } finally { objConn.Close(); objConn.Dispose(); } }