找回密码
 立即注册

QQ登录

只需一步,快速开始

menghuanyunxia

高级会员

111

主题

396

帖子

1075

积分

高级会员

积分
1075

活字格认证微信认证勋章元老葡萄

menghuanyunxia
高级会员   /  发表于:2013-5-24 09:56  /   查看:6308  /  回复:3
比如现在我列头的下拉框过滤菜单中有1,2,3,4,5,6,7,8,9,10这几项过滤子项,请问我如何用代码实现鼠标点击的操作,比如过滤出来“1”这项菜单的值
  var strfilters = new Dictionary<int, string>();
            for (int i = 0; i < activeSheet.ColumnCount; i++) //保存上一次的过滤信息
            {
                var strfilter = activeSheet.RowFilter.GetColumnFilterBy(i);
                if (!string.IsNullOrEmpty(strfilter))
                {
                    strfilters.Add(i, strfilter);
                }
            }

            activeSheet.RowFilter.ResetFilter(); //清除过滤条件
        foreach (var strfilter in strfilters)
                {   
                   activeSheet.RowFilter.IsFiltered(strfilter.Key);
                   activeSheet.RowFilter.SetColumnFilterBy(strfilter.Key, strfilter.Value);
                }
            }// 还原保存的过滤添加,但是没有作用,全部的项都显示出来了

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-5-24 16:54:00
沙发
回复 1楼menghuanyunxia的帖子

Spread 可以通过 AutoFilterColumn  方法来执行过滤。


  1. fpSpread1.ActiveSheet.Columns[2].AllowAutoFilter = true;
  2. fpSpread1.ActiveSheet.AutoFilterColumn(2, &quot;London&quot;, 1);

复制代码
回复 使用道具 举报
menghuanyunxia
高级会员   /  发表于:2013-5-24 20:56:00
板凳
问题已解决,多谢楼主
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-27 11:55:00
地板
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部