string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + 
                          filePaht + "';Extended Properties=Excel 8.0";
            con = new OleDbConnection(conStr);
            con.Open();
            string sqlStr = "select * from ["$Sheet"]";
            OleDbDataAdapter adapter = new OleDbDataAdapter(sqlStr, con);
            ds = new DataSet();//执行到这里报错
            adapter.Fill(ds);Microsoft Jet 数据库引擎找不到对象'Sheet'。请确定对象是否存在,并正确地写出它的名称和路径

解决方案 »

  1.   

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
     using(OleDbConnection OleConn = new OleDbConnection(strConn))
    {
      OleConn.Open();
      String sql = "SELECT * FROM [Sheet1$]";
      OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
      DataSet ds= new DataSet();
      OleDaExcel.Fill(ds);
      OleConn.Close();
    }
    检查sheet名称
      

  2.   


    还有一个问题 如果Excel 表中有多个Sheet,如何获得Sheet的个数,然后挨个读取它们;