找回密码
 立即注册

QQ登录

只需一步,快速开始

max

注册会员

8

主题

33

帖子

105

积分

注册会员

积分
105

微信认证勋章

max
注册会员   /  发表于:2018-7-3 19:09  /   查看:5400  /  回复:11
本帖最后由 max 于 2018-7-3 19:10 编辑

如何选中连续多单元格进行定义公式?
定义完成后,根据公式如何获取该公式的作用范围?

11 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-4 15:53:50
沙发
一般情况下可以循环进行设置,在设置之前加入spread.suspendCalcService和spread.suspendPaint,循环结束后加入spread.resumeCalcService和spread.resumePaint,这样只用计算和重绘一次,大幅度提高性能。例如
  1. spread.suspendPaint();
  2. spread.suspendCalcService();
  3. //此处循环设置公式
  4. for(...)
  5. spread.resumeCalcService();
  6. spread.resumePaint();
复制代码


可以通过formulaToRanges  这个方法来获得formula的公式引用范围,如下图所示:
image.png434182128.png
方法使用参考:
http://help.grapecity.com/spread ... ormulaToRanges.html

评分

参与人数 1满意度 +5 收起 理由
max + 5 很给力!

查看全部评分

回复 使用道具 举报
max
注册会员   /  发表于:2018-7-4 16:12:08
板凳
本帖最后由 max 于 2018-7-4 16:48 编辑
ClarkPan 发表于 2018-7-4 15:53
一般情况下可以循环进行设置,在设置之前加入spread.suspendCalcService和spread.suspendPaint,循环结束后 ...

1.选中连续单元格定义公式的意思是:多单元格,定义一个公式,计算结果有多个,回写到多个单元格上,而不是每个单元格定义一个公式。
2.9版本的好像不适用,没有formulaToRanges函数,9版本上有没有解决方案?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-4 19:21:00
地板
1.同一个公式计算结果只能有一个,除非参数不同,如果是参数不同,那就是按照我之前说的循环每一个单元格进行设置就可以了。
2.V9使用rangesToFormula方法,参考:
http://help.grapecity.com/spread ... angesToFormula.html

评分

参与人数 1满意度 +5 收起 理由
max + 5 很给力!

查看全部评分

回复 使用道具 举报
max
注册会员   /  发表于:2018-7-5 08:51:07
5#
ClarkPan 发表于 2018-7-4 19:21
1.同一个公式计算结果只能有一个,除非参数不同,如果是参数不同,那就是按照我之前说的循环每一个单元格进 ...

当前没有这种用法么?计算公式有多个计算结果,然后根据回填到多个单元格中。例如,执行一个select语句,某个字段返回的记录有可能是多条,如图所示如果返回的是多个记录,那么可以选中多个连续单元格然后定义一个公式,只计算一次就可以将多个返回结果回填到多个单元格上,而不是每个单元格定义不同的公式。
无标题.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-5 09:34:22
6#
没有,公式跟Excel是一样的,一个公式对应一个单元格,公式的结果不会出现到其他单元格中,因为其他单元格并没有设置公式。

评分

参与人数 1满意度 +5 收起 理由
max + 5 很给力!

查看全部评分

回复 使用道具 举报
max
注册会员   /  发表于:2018-7-5 09:39:21
7#
ClarkPan 发表于 2018-7-5 09:34
没有,公式跟Excel是一样的,一个公式对应一个单元格,公式的结果不会出现到其他单元格中,因为其他单元格 ...

好的。其实是区域公式,如果没有,那么我们再想其他办法。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-5 09:59:13
8#
或者您的具体需求是什么,我们看有没有其他方式能够实现。
回复 使用道具 举报
max
注册会员   /  发表于:2018-7-5 10:24:50
9#
ClarkPan 发表于 2018-7-5 09:59
或者您的具体需求是什么,我们看有没有其他方式能够实现。

需求描述:
选中连续单元格,能够定义公式,公式只有一个,可定义在最左上角单元格,不是选中的所有单元格都是相同的这个公式;
该公式的作用范围是连续单元格,控件能记录当前的作用范围;
公式是自定义公式,计算结果是一个记录集,可能会有多条记录,计算结果根据作用范围回填,可按行回填或者按列回填,计算结果多于作用范围的部分舍弃(该部分我们可以自己写代码回填,但是需要知道作用范围);
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-5 18:06:07
10#
这个试了一下,还真做不到。

评分

参与人数 1满意度 +5 收起 理由
max + 5 很给力!

查看全部评分

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部