找回密码
 立即注册

QQ登录

只需一步,快速开始

StarStarStar

注册会员

8

主题

26

帖子

110

积分

注册会员

积分
110
StarStarStar
注册会员   /  发表于:2024-12-31 10:25  /   查看:76  /  回复:8
3金币
image.png418562316.png 如何实现输入搜索值后,显示结果个数,当前是第几个,以及点击前后按钮切换选中单元格

8 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-12-31 12:18:37
沙发
您好!需要自定义实现了。
回复 使用道具 举报
StarStarStar
注册会员   /  发表于:2024-12-31 18:15:34
板凳
有方法可以获取到当前搜到的单元格总数吗
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:7 天前
地板
StarStarStar 发表于 2024-12-31 18:15
有方法可以获取到当前搜到的单元格总数吗

可以通过遍历单元格搜索,在遍历过程中记录符合搜索条件的单元格信息或者简单计数。
回复 使用道具 举报
StarStarStar
注册会员   /  发表于:7 天前
5#
遍历所有单元格会很慢吗 怎么能快点
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:7 天前
6#
StarStarStar 发表于 2025-1-2 10:05
遍历所有单元格会很慢吗 怎么能快点

在数据量大的情况下,可能会影响速度。

您的具体需要是什么?是需要自定义一个查找功能实现查找结果的统计吗?如果是的话,目前能支持的方案如上所述。
回复 使用道具 举报
StarStarStar
注册会员   /  发表于:6 天前
7#
好的 还想问一下 查找上一个单元格的方法是什么,demo里有查找下一个单元格的方法,但是没有查找上一个的方法
image.png862593994.png
回复 使用道具 举报
StarStarStar
注册会员   /  发表于:6 天前
8#
            let sheet = spread.getActiveSheet();
            searchCondition.startSheetIndex = spread.getActiveSheetIndex();
            searchCondition.endSheetIndex = spread.getActiveSheetIndex();

            if (searchCondition.searchOrder == GC.Spread.Sheets.Search.SearchOrder.zOrder) {
                searchCondition.findBeginRow = sheet.getActiveRowIndex();
                searchCondition.findBeginColumn = sheet.getActiveColumnIndex() - 1;
            } else if (searchCondition.searchOrder == GC.Spread.Sheets.Search.SearchOrder.nOrder) {
                searchCondition.findBeginRow = sheet.getActiveRowIndex() - 1;
                searchCondition.findBeginColumn = sheet.getActiveColumnIndex();
            }

            if ((searchCondition.searchFlags & GC.Spread.Sheets.Search.SearchFlags.blockRange) > 0) {
                let sel = sheet.getSelections()[0];
                searchCondition.rowStart = sel.getActiveRowIndex;
                searchCondition.columnStart = sel.getActiveColumnIndex;
                searchCondition.rowEnd = sel.row + sel.rowCount - 1;
                searchCondition.columnEnd = sel.col + sel.colCount -1;
            }


我改成这样,但是只有当横向的上一个单元格有查找到的值的时候,单元格的选中才会改成上一个,否则没有反应
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:6 天前
9#
zOrder表示在同行内追溯前一列的单元格,nOrder表示在同列内追溯上一行的单元格。

查找上一个单元格得要确认下指的是同列中的上一行单元格还是同行的前一列单元格,通过Worksheet:getActiveRowIndex()和Worksheet:getActiveColumnIndex()可以分别获取当前单元格所在行列索引,自行定义”上一个单元格“的相关逻辑即可。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部