将两个excel表格中的内容分别导入到两个gridview中  然后点击比较差异  那两个gridview中不同的数据显示红色
求高手解决 最好有代码提示!!!

解决方案 »

  1.   

    代码没有,思路有~~
    excel导入gridview这个会吧,
    下面这是一个简单的实现方式,当然需要重新去确认自己excel的版本
    Excelhttp://www.cnblogs.com/solo/archive/2008/04/14/1152802.html)至于比较最笨的也最好理解的方法就是一个单元格一个单元格去比较了,双重循环去比较,如果值不一致就把背景色标为红色
      

  2.   

    导入到view中以后判断  或者
    新建行的时候比较新创建一个view row 设置row的字体颜色就行了
      

  3.   

    数据先放在两个datatable中,将两个datatable中的数据比较,不同的数据就加上红色的格式(如:<span style="color:red">xxxx</span>),再放入table的原位置
      

  4.   

    以哪一个为标准 如有不同2个gridview都显示不同的颜色?
      

  5.   


     protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    DataTable dt2 = new DataTable();
                    dt2.Columns.Add("id");
                    dt2.Columns.Add("name");
                    dt2.Rows.Add("0001", "name1");
                    dt2.Rows.Add("0002", "name3");
                    dt2.Rows.Add("0004", "name4");
                    GridView2.DataSource = dt2;
                    GridView2.DataBind();                DataTable dt = new DataTable();
                    dt.Columns.Add("id");
                    dt.Columns.Add("name");
                    dt.Rows.Add("0001", "name1");
                    dt.Rows.Add("0002", "name2");
                    dt.Rows.Add("0003", "name3");                GridView1.DataSource = dt;
                    GridView1.DataBind();
                    // 把多出的行的背景色变成红色
                    if (GridView1.Rows.Count > GridView2.Rows.Count)
                    {
                        for (int i = GridView2.Rows.Count; i < GridView1.Rows.Count; i++)
                        {
                            GridView1.Rows[i].BackColor = Color.Red;
                        }
                    }
                    else if (GridView1.Rows.Count < GridView2.Rows.Count)
                    {
                        for (int i = GridView1.Rows.Count; i < GridView2.Rows.Count; i++)
                        {
                            GridView2.Rows[i].BackColor = Color.Red;
                        }
                    }
                }
            }        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                // 数据绑定的时候根据现在的值去跟另一个比较,不同的背景色设置红色
                // 注意:GridView2要先完成数据绑定,然后在GridView1_RowDataBound的绑定事件里去比较
                // 也可以在两个都完成绑定后,通过双重循环来直接遍历gridview比较
                if (e.Row.RowType != DataControlRowType.DataRow)
                { return; }
                if (e.Row.RowIndex >= GridView2.Rows.Count)
                {
                    return;
                }
                for (int i = 0; i < e.Row.Cells.Count; i++)
                {
                    DataRowView drv = (DataRowView)e.Row.DataItem;
                    if (!GridView2.Rows[e.Row.RowIndex].Cells[i].Text.Equals(drv.Row[i].ToString()))
                    {
                        GridView2.Rows[e.Row.RowIndex].Cells[i].BackColor = Color.Red;
                        e.Row.Cells[i].BackColor = Color.Red;
                    }
                }
            }
      

  6.   

    6楼 两个gridview中不同的地方都显示红色 7楼 是不是一导入到两个gridview中就自行比较了  因为我没有看到有单击事情
      

  7.   

    7楼  也可以在两个都完成绑定后,通过双重循环来直接遍历gridview比较
    这样如何做呢
    你上面的gridview中的事件 只能是第一行和第一行比较  不能第一行的和另外一个gridview中的所有行像比较