变通的方法.
        先从excel表中取一个没记录的DataTable dt 
              dt.Columns[0];       
            dt.Columns[1];
            dt.Columns[2];

解决方案 »

  1.   

    我使用的代码如下: 
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source=E:\\test.xls;" +"Extended Properties=Excel 8.0;";
    OleDbConnection conn = new OleDbConnection(strConn);
    conn.Open();
    DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
    我是用GetOleDbSchemaTable函数的.请问如果按我的这种方法该如何取得表的列名呢?
      

  2.   

    试试:
    schemaTable.Columns[i].Caption 

    schemaTable.Columns[i].ColumnName
      

  3.   

    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\test.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
    如果只想得到列名,而不需要内容,则可以如上设置strConn,然后读取的DataTable的第1行就是列名。
      

  4.   

    恢复楼上的:
    用schemaTable.Columns[i].Caption 或 schemaTable.Columns[i].ColumnName 似乎不行另外你说的第二种方法是否就是把我的strConn改一下,其余的不变?
    就是:
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\test.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\""; 
    OleDbConnection conn = new OleDbConnection(strConn); 
    conn.Open(); 
    DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);