你把excel.ocx 转换成excel.dll,直接引用这个dll ,把这个dll打包到目标机器上就可以了,即使目标机器上没有安装excel也可以使用Excel.Application

解决方案 »

  1.   

    先通过 连接 Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.mappath("xxx.xls") & ";Extended Properties=Excel 8.0; 把excel的内容读取在dataset中,再写到数据库不行吗
      

  2.   

    将数据从excel导入到数据库中一般不用Excel.application,这种方式的访问速度比较慢,而且必须安装excel
    用下面的方式using System.Data.OleDb;string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
    OleDbConnection conn = null;
    DataSet ds = null;
     try
     {
        conn = new OleDbConnection(strConn);
        conn.Open();
        DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string strSheetName = dt.Rows[0][2].ToString().Trim();    OleDbDataAdapter adapter = null;
        string strExcel = "SELECT * FROM [" + strSheetName + "]";
        adapter = new OleDbDataAdapter(strExcel, strConn);
        adapter.Fill(ds, strSheetName);
     }
     catch (Exception ex)
     {
        throw new Exception(ex.Message);
     }
      finally
      {
        conn.Close();
      }
      

  3.   

    1、先读到DataSet 然后拼sql插入到数据库
    2、或者Execl转换为xml串(可以写vba或者c#拼串),然后弄成@xml ntext 参数传入存储过程里,用openxml和sp_xml_removedocument去处理