当Excel里面的Sheet名为Sheet1的时候,可以用以下这个命令连接上Excel,但要是Sheet名不一样,那就惨了,会找不到数据表.OleDbCommand myOleDbCommand=new OleDbCommand("SELECT * FROM [Sheet1$]",myOleDbConnection);请教各位大侠,怎么样才能知道一个Excel文件里有几个Sheet,每个Sheet的名字分别是什么呢?这样的话就不会有这样的出错了~~在线等,请高手帮下忙~~

解决方案 »

  1.   

    DataTable dt = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
      

  2.   

    OleDbConnection objConn = null;
                DataTable dt = null;            try
                {
                    string connString =
                        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Readme.xls;Extended Properties=Excel 8.0;";
                    objConn = new OleDbConnection(connString);
                    objConn.Open();
                    dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);                if (dt != null)
                    {
                        string[] sheetName = new string[dt.Rows.Count];
                        int i = 0;
                        foreach (DataRow row in dt.Rows)
                        {
                            sheetName[i] = row["TABLE_NAME"].ToString();
                            i++;
                        }                }
                }
                catch(Exception e1)
                {
                    ...
                }