Excel导入数据库,兼容Excel2003,2007

        public static System.Data.DataSet ExcelConnection(string filepath, string exName, string tableName, out string errmsg)
        {
            errmsg = "";
            string strCon = "";
            if (exName == ".xls")
                strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
            if (exName == ".xlsx")
                strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=\"Excel 12.0;HDR=YES\"";

            System.Data.OleDb.OleDbConnection ExcelConn = new System.Data.OleDb.OleDbConnection(strCon);
            try
            {
                ExcelConn.Open();
                DataTable dt = ExcelConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                if (dt == null)
                    return null;
                string excelSheet = dt.Rows[0]["TABLE_NAME"].ToString();

                string strCom = string.Format("SELECT * FROM [" + excelSheet + "]");

                System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, ExcelConn);
                DataSet ds = new DataSet();
                myCommand.Fill(ds, tableName);
                ExcelConn.Close();
              
                return ds;
            }
            catch(Exception ex)
            {
                errmsg = ex.Message;
                ExcelConn.Close();
                return null;
            }
        }

posted on 2012-08-08 16:42  洞幺人生  阅读(455)  评论(0编辑  收藏  举报