代码如下:String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sName + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\"";   
            OleDbConnection objConn = new OleDbConnection(sConnectionString);
 
            objConn.Open();            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter();
            da.SelectCommand = cmd;            da.Fill(ds);
            string s = ds.Tables[0].Rows[10,2].ToString();
            objConn.Close();问题:因为8-12行的第二列是合并的。现在我要读10行第二列的数据,怎么读?

解决方案 »

  1.   

    首先指出一个错误.
    string s = ds.Tables[0].Rows[10,2].ToString(); 
      

  2.   

    应该是string s = ds.Tables[0].Rows[10][2].ToString(); 
    合并了,那第十行第二列就是空的啊.
      

  3.   

    baihe_591 :说的对。因为这句我是要发布时临时加上去的,所以没注意了。就是因为我这样读出来时,发现是空的。所以,现在就是要找到方法,读出在EXCEL上显示的值。
      

  4.   

    string filename="d:\\book.xls";
    OleDbConnection odcn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + filename+ ";Extended Properties=Excel 8.0;");
    odcn.Open();                
    OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet2$]", odcn);
    DataSet ds = new DataSet();
    odda.Fill(ds, "Excel");
    DataTable dt = ds.Tables["Excel"];                
    dataGridView1.DataSource = dt;这是拿dataGridView显示的,你看一下就会明白的。
    如果A、B两列合并,A列有值,B列的值为空值。