D:\\contacts.xls
/////
这个文件具体在什么地方,首先你需要正确连接到这个文件

解决方案 »

  1.   

    是这样的,我先把contacts.xls直接放在d盘下,但是,出现了找不到表的问题,
    后来看了孟子e章的文章,又放到了C:\\Inetpub\\wwwroot\\contacts.xls,没想到
    情况更糟,出现了权限问题。
      

  2.   

    这个文件不是随便放,如果比如你放D盘可能是因为权限问题你找不到
    将这个文件放在和你的.cs同一目录下,然后连接的时候这么写:
    string Str="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0; Data Source="+Server.MapPath("contacts.xls");
      

  3.   

    好的,我试试先.麻烦acewang了
      

  4.   

    错误在这一句string Sele="SELECT * FROM [ContactList$]",
    表明不是ContactList即excle的文件名,而是excle工作表名,默认是Sheet1,Sheet2,Sheet3....
    string Sele="SELECT * FROM [Sheet1$]",
      

  5.   

    Excel文件的路径指定正确吗?
    'ContactList$'应该是Sheet的名称,你的对应吗?
      

  6.   

    string Str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\contacts.xls; Extended Properties=Excel 8.0;";
    OleDbConnection Conn=new OleDbConnection(Str);
    Conn.Open();
    string Sele="SELECT * FROM [ContactList$]";
    //不能用下面的
    OleDbCommand command=new OleDbCommand(Sele,Conn);
    OdbcDataAdapter ada = new OdbcDataAdapter();
    DataSet oDs = new DataSet();
    ada.Fill(oDs , command);//填充数据
    datagrid1.DataSource = oDs;
    datagrid1.DataBind();
      

  7.   

    string Str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\contacts.xls; Extended Properties=Excel 8.0;";
    OleDbConnection Conn=new OleDbConnection(Str);
    Conn.Open();
    string Sele="SELECT * FROM [ContactList$]";
    OdbcDataAdapter ada = new OdbcDataAdapter(Sele , Conn);
    DataSet oDs = new DataSet();
    ada.Fill(oDs);
    datagrid1.DataSource = oDs;
    datagrid1.DataBind();
      

  8.   

    acewang的方法,我试过了,系统提示是:System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。
    这是怎么一回事啊?
    另外,我的excel表中的sheet1我已经改成了ContactList,应该不是这个造成的问题。
      

  9.   

    rroo(天之痕)你的方法里有个OdbcDataAdapter,这个和OleDbConnection好象不能联系
    在一起吧。
      

  10.   

    找不到可安装的 ISAM
    /////////////
    一般就是连接字符串写的有问题,你贴出来我看一下
      

  11.   

    尤其注意Data Source中间有空格
      

  12.   

    string Str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("contacts.xls")+"; Extended Properties=Excel 8.0;
    HDR=Yes;";
      

  13.   

    excel文件你放在d盘,这种做法是对的.
    你的出错信息"文件已被独立用户打开",绝对是权限的问题,你看看.xls文件所在文件夹是否有写的权限,
    你的这句:
    Data Source="+Server.MapPath("contacts.xls")+"; 
    Server.MapPath()
    应该是指"C:\\Inetpub\\wwwroot\\contacts.xls,"之类的,但你的文件在D盘,
    找不到这个文件.
      

  14.   

    我给你method你吧!
    public bool ReadExcelToDataSet(string strFileName,string strSheet,DataSet ds)
    {
       try
        {
          string strConn;
          strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source="+strFileName+";Extended Properties=Excel 8.0;";
          string strSQLCommand="SELECT * FROM ["+strSheet+"$]";
          OleDbConnection conn = new OleDbConnection(strConn);
          OleDbDataAdapter myCommand = new OleDbDataAdapter(strSQLCommand, strConn);
          myCommand.Fill(ds,strSheet);
          return true;
      }
      catch 
      {
      }
    }
      

  15.   

    你的Excel和你的*.cs文件在同一目录下面
    string Str="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0; Data Source="+Server.MapPath("contacts.xls")+";";
      

  16.   

    已经ok了,还是acewang的连接字段的写法是正确的,谢谢各位了,马上结帐。