找回密码
 立即注册

QQ登录

只需一步,快速开始

yue1859921
初级会员   /  发表于:2024-8-13 10:41  /   查看:1667  /  回复:17
1金币
我有个需求是,通过spreadjs 做了一个表格 里面用到随机函数,  新增功能时可以支持随机函数,但是修改或者查看这个表格时数据能固定住,不再触发随机函数
有没什么好的办法? 目前我想的办法是设置随机函数不生效,但不知道是否可行?


最佳答案

查看完整内容

可以的,加一个开关按钮,来根据开关调用API 设置自定义名称。 做表格的只需要点击开关按钮就行。 https://demo.grapecity.com.cn/sp ... Sheets.NameInfo#set 这样预览PDF也能实现不触发随机函数,就是那个名称的值设置为0

17 个回复

倒序浏览
最佳答案
最佳答案
不吐葡萄皮
注册会员   /  发表于:2024-8-13 10:41:17
来自 12#
本帖最后由 不吐葡萄皮 于 2024-8-16 10:58 编辑
yue1859921 发表于 2024-8-16 09:33
这个办法 不知道是不是可以通过程序来控制, 因为做表格的 他可能不擅长 设置这些

可以的,加一个开关按钮,来根据开关调用API 设置自定义名称。 做表格的只需要点击开关按钮就行。 https://demo.grapecity.com.cn/sp ... Sheets.NameInfo#set

这样预览PDF也能实现不触发随机函数,就是那个名称的值设置为0

评分

参与人数 1金币 +500 收起 理由
Ellia.Duan + 500

查看全部评分

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-8-13 16:58:17
2#
您好,可以设置公式不自动计算,改为手动计算。
https://demo.grapecity.com.cn/sp ... as/calculation-mode
当需要随机函数生效时,spread.calculate()进行公式重算。
回复 使用道具 举报
不吐葡萄皮
注册会员   /  发表于:2024-8-13 17:02:22
3#
我来给一个解决思路,比如C4公式里面输入公式 =IF(A1,RAND(),C4)
如果A1 里面是1,那么就是每次文件编辑之后C4都是随机值,
把A1的值清空,那么C4的值就固定不再变化了。

评分

参与人数 1金币 +200 收起 理由
Ellia.Duan + 200

查看全部评分

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-8-13 17:22:07
4#
可以参考楼上热心观众的回复。
回复 使用道具 举报
yue1859921
初级会员   /  发表于:2024-8-14 16:12:38
5#
不吐葡萄皮 发表于 2024-8-13 17:02
我来给一个解决思路,比如C4公式里面输入公式 =IF(A1,RAND(),C4)
如果A1 里面是1,那么就是每次文件编辑 ...

因为我们可能是涉及到不同表格,公式的所在单元格也不一样,所以针对性对某个单元格进行清空操作可能比较麻烦。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-8-14 17:48:45
6#
您好,也可以试试suspendCalcService暂时关闭计算引擎,看能否实现您的需求。
回复 使用道具 举报
yue1859921
初级会员   /  发表于:2024-8-15 10:00:31
7#
本帖最后由 yue1859921 于 2024-8-15 10:01 编辑
Joestar.Xu 发表于 2024-8-14 17:48
您好,也可以试试suspendCalcService暂时关闭计算引擎,看能否实现您的需求。

整个表格 都关闭计算引擎也不太合适,因为其他单元格涉及  计算的依然要有效,修改数据进行计算 也是合理的,唯独 随机函数的 不需要生效,不知道是否有什么办法能指定随机函数不生效? 保持单元格内的数据

还有个问题, 就是spreadjs表格用Gcexcel后台转pdf后,每次预览PDF都会触发随机函数,是否有办法预览PDF时不触发
回复 使用道具 举报
不吐葡萄皮
注册会员   /  发表于:2024-8-15 12:19:11
8#
yue1859921 发表于 2024-8-14 16:12
因为我们可能是涉及到不同表格,公式的所在单元格也不一样,所以针对性对某个单元格进行清空操作可能比较 ...

那我再升级一下我的解决方案,创建两个Name,如下图,然后把公式需要执行条件随机的由RAND() 替换成newRand.  然后改enableRand 的值来控制是不是生成随机数。 我在Excel测试了一下没问题,不知道SpreadJS 支不支持

image.png245112914.png

评分

参与人数 1金币 +500 收起 理由
Joestar.Xu + 500 很给力!

查看全部评分

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-8-15 17:29:32
9#
不吐葡萄皮 发表于 2024-8-15 12:19
那我再升级一下我的解决方案,创建两个Name,如下图,然后把公式需要执行条件随机的由RAND() 替换成newRa ...

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