找回密码
 立即注册

QQ登录

只需一步,快速开始

talklion911

初级会员

26

主题

75

帖子

233

积分

初级会员

积分
233

[已处理] ActiveSheet.SortRows

talklion911
初级会员   /  发表于:2022-10-26 17:08  /   查看:2026  /  回复:7
1金币
ActiveSheet.SortRows排序的时候是按照cell的value排序的,能改成text排序吗?比较器是自己写的

image.png40393675.png

最佳答案

查看完整内容

这个可能没有办法,只能按照单元格实际的值来排序,你写copmare接口传入的也是值

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-26 17:08:41
来自 6#
这个可能没有办法,只能按照单元格实际的值来排序,你写copmare接口传入的也是值
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-26 18:13:34
2#
这个需要你自己来实现Icompare接口,网上有不少的示例,你可以搜索来参考,
你说的按照text排序,我不确实你具体是要什么规则

比如简单的字符串排序
  1.     public class ComparerTest : IComparer<String>
  2.     {
  3.         public int Compare(String x, String y)
  4.         {
  5.             return string.CompareOrdinal(x, y);
  6.         }
  7.     }
复制代码
回复 使用道具 举报
talklion911
初级会员   /  发表于:2022-10-27 09:45:37
3#
规则我已经写了,问题是我这列,value是数字,text是文本,比对的时候用的是value
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-27 12:12:28
4#
我没太理解 你说的“我这列,value是数字,text是文本”,是说你这列中有文本也有数字?

你现在遇到的问题是排序没有走到你的compare逻辑中,还是说compare的排序代码不对?

回复 使用道具 举报
talklion911
初级会员   /  发表于:2022-10-27 15:44:24
5#
就是比如我绑定的是ItemData,ItemData里是数字,显示的是Item,我现在想用Item去比较排序


                cmbocell.ItemData = a
                cmbocell.Items = b  '显示的值
                cmbocell.AutoSearch = FarPoint.Win.AutoSearch.MultipleCharacter
                cmbocell.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData

回复 使用道具 举报
talklion911
初级会员   /  发表于:2022-10-27 18:51:45
7#
Richard.Ma 发表于 2022-10-27 18:09
这个可能没有办法,只能按照单元格实际的值来排序,你写copmare接口传入的也是值

compare能传入text吗?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-28 09:38:51
8#
没有办法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部