将Excel导入到DataSet

Posted on 2009-03-22 15:09  ymss  阅读(170)  评论(0)    收藏  举报

   //获得Excel中的所有sheetname={Sheet1$,Sheet2$,Sheet3$}
        public ArrayList ExcelSheetName(string filepath)
        {
            ArrayList al = new ArrayList();
            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filepath + "';Extended Properties='Excel 8.0;HDR=yes'";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            DataTable sheetNames = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            conn.Close();
            foreach (DataRow dr in sheetNames.Rows)
            {
                al.Add(dr[2]);
            }
            return al;//al={Sheet1$,Sheet2$,Sheet3$}
        }

        //该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径,sheetname表示Sheet1表
        public DataSet ExcelDataSource(string filepath, string sheetname)//filepath=F:\\文件导入
        {
            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filepath + "';Extended Properties='Excel 8.0;HDR=yes'";
            OleDbConnection conn = new OleDbConnection(strConn);
            OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", strConn);
            DataSet ds = new DataSet();
            oada.Fill(ds);
            return ds;
        }

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3