excel 表中有三个工作表:客户关系,sheet2,sheet3,我只取第一个工作表名,而下面程序返回的是sheet2,如果把“客户关系”改成英文,确又以能认识第一个工作表。请教高手如何获取第一个中文工作表名。谢谢 public String getExcelFileTable(string Path)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
            conn.Open();
            System.Data.DataTable table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
            //DataTable table = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE " });
            string TableName = table.Rows[0]["TABLE_NAME"].ToString();
            TableName = TableName.Substring(0, TableName.Length - 1);
            TableName = HttpUtility.UrlEncode(TableName, System.Text.Encoding.GetEncoding("utf-8"));
            Response.Write("<script language='javascript'>alert('" + TableName + "')</script>");
            conn.Close();
            return TableName;
        }

解决方案 »

  1.   

    可以不用Ole方式
    在com中把Excel的dll引入,可以直接操作Excel的类,用起来很方便
      

  2.   

    本帖最后由 net_lover 于 2011-10-02 11:05:50 编辑
      

  3.   

    中文在里面,说明它不是第一个啊,

    table.Rows[0]["TABLE_NAME"].ToString();
    这样取就是错误的了
      

  4.   

    比如:表中是    英国 中国  sheet3 读出来后是  Sheet3$英国$中国$ 
      

  5.   

    比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$。而我要取的数据是英国里面的。请问要如何取。谢谢
      

  6.   

    比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$。而我要取的数据是英国里面的。请问要如何取。谢谢
     public  String getExcelFileTable()
            {
                OleDbConnection oleConn = new OleDbConnection();
                oleConn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;data source=D:\\2.xls;Extended Properties=Excel 8.0;";
                oleConn.Open();
                DataTable dtOle = oleConn.GetSchema("Tables");
                DataTableReader dtReader = new DataTableReader(dtOle);            while (dtReader.Read())
                {
                    Response.Write(dtReader["Table_Name"]);
                    
                }
                dtReader = null;
                dtOle = null;
                oleConn.Close();
                return "";
              
            }
      

  7.   

    吧sheet2和sheet3删掉吧,好弄点
      

  8.   

    这个方法想过。不过有时候后几个SHEET中会保存有用数据。重新建立一个EXCEL再复制第一个SHEET的数据有点麻烦。所以才想解决这个问题。