我读取了一个excle 文件       Excel.Application xExcel = new Excel.Application();
            xExcel.Visible = false ;            Excel.Workbook xBook = xExcel.Workbooks.Open(@"E:\Text(1)\单词查询\单词查询\bin\Debug\User.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);            Excel.Worksheet xSheet = (Excel.Worksheet)xBook.Sheets[1];            Excel.Range range1 = xSheet.get_Range("A2", Type.Missing);
            Excel.Range range2 = xSheet.get_Range("B2", Type.Missing);            string Str1 = range1.Value2.ToString();
            string Str2 = range2.Value2.ToString();
我想读取这个sheet 中的任意一行的 数据怎么读啊 ?给点提示,发点代码也可以

解决方案 »

  1.   

      string conn = " Provider=Microsoft.ACE.OLEDB.12.0;Data Source = '" + filename.ToString() + "';" + "Extended Properties ='Excel 12.0;HDR=YES'";
                OleDbConnection thisconnection = new OleDbConnection(conn);
                thisconnection.Open();
                string Sql = "select * from [RoleAttrition$]";
                OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, thisconnection);
                DataSet ds = new DataSet();
                mycommand.Fill(ds, "[RoleAttrition$]");
                thisconnection.Close();
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    string date = ds.Tables[0].Rows[i]["Date"].ToString();
                    string projectedSTE = ds.Tables[0].Rows[i]["Projected STE"].ToString();
                    string actualSTE = ds.Tables[0].Rows[i]["Actual STE"].ToString();
                    string projectedSDET = ds.Tables[0].Rows[i]["Projected SDET"].ToString();
                    string actualSDET = ds.Tables[0].Rows[i]["Actual SDET"].ToString();
                    string projectedTL = ds.Tables[0].Rows[i]["Projected TL/PM"].ToString();
                    string actualTL = ds.Tables[0].Rows[i]["Actual TL/PM"].ToString();                string sql = "insert into [RoleAttrition] (RADate,TitleNo,RProjectedNumber,RActualNumber,STEProjectedNumber,STEActualNumber," +
                        "SDETProjectedNumber,SDETActualNumber,MgtProjectedNumber,MgtActualNumber) values ('" + date + "',NULL,NULL,NULL,'" + projectedSTE
                            + "','" + actualSTE + "','" + projectedSDET + "','" + actualSDET + "','" + projectedTL + "','" + actualTL + "' )";                rtbGenerate.AppendText(sql + ";" + "\n");
       
      

  2.   

    一个for循环来遍历整个表中的列名,想读哪不行啊?? 
      

  3.   

    ((Excel.Range)xSheet.Cells[1, "A"]).Text//读取表面看到的值,
    ((Excel.Range)xSheet.Cells[1, "A"]).Value2//读取实际的value一般用Text即可
      

  4.   

    遍历的话可以这样:
    bool isEmpty = false;
     for (int i = 2; i <= xSheet.UsedRange.Rows.Count; i++)
                {
                    isEmpty = true;
                    for (int j = 1; j < 10; j++)//这个是判断当前行是否为一空行,具体几个字段可以自己定(10可以换成其它数)
                    {
                        if (((Excel.Range)xSheet.Cells[i, j]).Value2 != null)
                        {
                            isEmpty = false;
                            break;
                        }
                    }
                    if (isEmpty)
                    {
                        break;
                    }                string str = ((Excel.Range)workSheet.Cells[i, "A"]).Text;
                    ......B
                    ......C
                }