求一段EXCEL导入SQL的代码?

解决方案 »

  1.   

    似乎用ODBC可以直接将EXCEL以表的形式访问,再转入SQL,应该不困难吧。
      

  2.   

    http://support.microsoft.com/kb/321686/zh-cn
      

  3.   

    // 我的方法是把Excel的数据导入DataSet,然后把DataSet导入数据库,以下的方法是把Excel的数据导入DataSet   
                      public   static   DataSet   GetExcelContent(string   filepath)   
      {   
        
      string   strCon   =   "   Provider   =   Microsoft.Jet.OLEDB.4.0   ;   Data   Source   =   "+filepath+";Extended   Properties='Excel   8.0;IMEX=1'"   ;   
      System.Data.OleDb.OleDbConnection   myConn   =   new   System.Data.OleDb.OleDbConnection   (strCon)   ;   
      string   strCom   =   "   SELECT   *   FROM   [Sheet1$]   "   ;   
      myConn.Open(   )   ;   
      System.Data.OleDb.OleDbDataAdapter   myCommand   =   new   System.Data.OleDb.OleDbDataAdapter(strCom,myConn   )   ;   
      //创建一个   DataSet对象   
      DataSet   myDataSet   =   new   DataSet(   );   
      //得到自己的DataSet对象   
      myCommand.Fill   (myDataSet,"[Sheet1$]")   ;   
      //关闭此数据链接   
      myConn.Close();   
      return   myDataSet;   
         
      }   
      

  4.   

    我想的方式是,从EXCEL中先读出来,放进一个DS中,在添加到SQL中,但是我自己写的要爆错,郁闷.大家帮个忙,急555555555555555
      

  5.   

    找不到可安装的 ISAM,晕,仿佛有包没导过去?
      

  6.   

    找不到可安装的 ISAM。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。源错误: 
    行 24:         System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
    行 25:         string strCom = "   SELECT   *   FROM   [Sheet1$]   ";
    行 26:         myConn.Open();
    行 27:         System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
    行 28:         //创建一个   DataSet对象   
     
      

  7.   

    可能是连接字符串错误
    你查一查
    连接字符串错误   
      DataSource-------->Data   Source,中间有空格
      

  8.   

    protected void Page_Load(object sender, EventArgs e)
        {
            
            string mpath = "";
            mpath = "E:\\ceshi.xls";
            GetExcelContent(mpath);
        }
        public static DataSet GetExcelContent(string filepath)
        {
            string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource= " + filepath + ";Extended  Properties='Excel   8.0;IMEX=1'";  
            System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
            string strCom = "   SELECT   *   FROM   [Sheet1$]   ";
            myConn.Open();
            System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
            //创建一个   DataSet对象   
            DataSet myDataSet = new DataSet();
            //得到自己的DataSet对象   
            myCommand.Fill(myDataSet, "[Sheet1$]");
            //关闭此数据链接   
            myConn.Close();
            return myDataSet;
        }我代码是这样写的,请大家帮忙看看,我这里还是报刚刚那个错.是不是写的路径有问题?
      

  9.   

    连接字符串里面的DataSource中间有空格
      

  10.   

    但是我继续试了一下还是不行郁闷,你们看我的代码
    protected void Page_Load(object sender, EventArgs e)
        {
            
            string mpath = "";
            mpath = "E:\\ceshi.xls";
            GetExcelContent(mpath);
        }
        public static DataSet GetExcelContent(string filepath)
        {
            string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + filepath + ";Extended  Properties='Excel   8.0;IMEX=1'";  
            System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
            string strCom = "   SELECT   *   FROM   [Sheet1$]   ";
            myConn.Open();
            System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
            //创建一个   DataSet对象   
            DataSet myDataSet = new DataSet();
            //得到自己的DataSet对象   
            myCommand.Fill(myDataSet, "[Sheet1$]");
            //关闭此数据链接   
            myConn.Close();
            return myDataSet;
        }
      

  11.   

    你们拿我这段代码在你们的机器上能用吗?我用的是.NET2005.
      

  12.   

    public static DataSet CreateDataSource(string Src)
    {
    try
    {
    string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + Src +";"+
    "Extended Properties=\"Excel 8.0;IMEX=1;\""; //连接 OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null); string tableName=schemaTable.Rows[0][2].ToString().Trim(); //得到excel表名 OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM ["+ tableName +"]", strConn); //查找excel数据 DataSet myDataSet = new DataSet(); //定义数据 myCommand.Fill(myDataSet); conn.Close(); return myDataSet;
    }
    catch
    {
    return null;
    }
    }
      

  13.   

    试了你的语句,报错:找不到可安装的 ISAM。 .net2003
    可能与连接字符串有关