找回密码
 立即注册

QQ登录

只需一步,快速开始

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

200

主题

9899

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
15531

讲师达人悬赏达人微信认证勋章SpreadJS 认证SpreadJS 高级认证元老葡萄

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-6 21:05  /   查看:4699  /  回复:0
SpreadJS原生支持查找功能,但没有对应的功能API,在Excel,或者文本编辑器中,替换是一个非常常见的操作,但我们去修改文档的时候,通过查找查找到某个内容,然后替换成另一个内容是非常常见的操作。那么在SpreadJS中该如何实现替换的操作呢?首先我们还是要利用查找操作来查找出来内容
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/search/basic-search/purejs
由于SpreadJS中的查找功能实现的是单步查找的功能,如果要做到继续查找或者查找全部的功能,需要将查找包装成一个方法,然后通过递归进行调用。
递归的出口就是当查找结果返回对象中的foundRowIndex和foundColumnIndex为-1的时候,说明已经查找完了所有的内容。
  1. <blockquote><span style="white-space:pre">                </span>function search(row,col,searchString){
复制代码
之后我们需要做的就是将对应的activeCell显示到查找的结果上,这里用setActiveCell这个接口可以做到。类似下面代码
  1. sheet.setActiveCell(result.foundRowIndex,result.foundColumnIndex);
复制代码
最后就是替换功能了,原理就是通过setValue将查找到的单元格的值变为替换后的结果。
  1. sheet.setValue(searchResult.foundRowIndex, searchResult.foundColumnIndex,document.getElementById('txtReplaceWhat').value)
复制代码
如此这般,我们就可以在SpreadJS中实现替换功能了。
附件上传一个实现了功能的示例,可以当做参考
我们可以设置relace what来进行替换的内容
image.png371370543.png
之后点击relaceNext按钮就可以替换查找到的单元格了
image.png111604308.png
这里有一点需要说明,本示例中默认查找模式是模糊匹配,所以执行替换的时候模糊匹配的结果也会进行替换。
如果需要精确查找,请勾选下图的按钮并参考对应实现代码。
image.png627420653.png

replace.zip

3.19 KB, 下载次数: 82

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部