需要实现的功能是将Excel表中的数据按指定列的内容的字符长度来排序。我现在的解决办法是将Excel表读取到DataSet中,然后在DataGridView对数据进行排序,但是DataGridView没有按字符长度排序的功能。所以只能在DataSet中对table进行手动排序,然后将table导出到新的Excel表中。这个过很繁琐,还要自己写排序的方法,有没有其他好的解决办法。

解决方案 »

  1.   

    没有的~~~只能写个方法操作视图
    datatable.select是伪查询c#方便   但是有写地方还是不全的,不像c想怎么操作就怎么操作
      

  2.   

    DataView dv=ds.Tables[0].DefaultView;
    dv.Sort="len(字段)";
      

  3.   


    能说的具体点吗,
    dv.Sort="len(字段)";这句我看的不是很明白;
    谢谢了!11
      

  4.   


    len(字段) 就是按字段内容的长度进行排序  DataView dv=ds.Tables[0].DefaultView;
      dv.Sort="len(字段) asc"; //升级 从短到长
      dv.Sort="len(字段) desc"; //降序 从长到短
      

  5.   

    len() 好像是vb中方法,c#中有这个方法吗?
      

  6.   

    DataView dv = ds.Tables[0].DefaultView;
    dv.Sort = "len(中文)";
    中文是我表的列名,
    调试时 报错 
     {"无法找到列 len(中文)。"}我是新手,请大家多多指点哦 ,这里先谢谢了!
      

  7.   

    http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(VS.71).aspx
      

  8.   

    额,上面是E文,下面给的中文的
    http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx
      

  9.   

    DataView dv = ds.Tables[0].DefaultView;
    dv.Sort = ".....";
    我知道这个是对dataSet排序的,如果想绑定数据源DataTable dt=dv.ToTable();
    但是len("列名")这种方式我没用过,用的最多的是根据字段排序dv.Sort = "SAge Asc"; (按年龄升序排列)