using System.Data;using System.Data.OleDb; /// <summary> /// 将Excel读取到DataSet /// </summary> /// <param name="path">Excel 路径</param> /// <param name="excelversion">12.0</param> /// <returns></returns> public static DataSet ExcelToDataSet(string path,string excelversion) { try { // 拼写连接字符串,打开连接 string strConn = "Provider=Microsoft.ACE.OLEDB." + excelversion + ";" + "Data Source=" + path + ";Extended Properties='Excel " + excelversion + "; HDR=YES; IMEX=1'"; OleDbConnection objConn = new OleDbConnection(strConn); objConn.Open(); // 取得Excel工作簿中所有工作表 DataTable schemaTable = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); OleDbDataAdapter sqlada = new OleDbDataAdapter(); DataSet ds = new DataSet(); // 遍历工作表取得数据并存入Dataset foreach (DataRow dr in schemaTable.Rows) { string strSql = "Select * From [" + dr[2].ToString().Trim() + "]"; OleDbCommand objCmd = new OleDbCommand(strSql, objConn); sqlada.SelectCommand = objCmd; sqlada.Fill(ds, dr[2].ToString().Trim()); } objConn.Close(); return ds; } catch { return null; } }
以上回答你满意么?
追问几十g的数据存入excel现实吗?这样的写入不会道是程序卡死吗?或者这么大量的数据写入需要好长时间吧?