找回密码
 立即注册

QQ登录

只需一步,快速开始

kotoYY

金牌服务用户

113

主题

265

帖子

840

积分

金牌服务用户

积分
840

[已处理] 修改round函数

kotoYY
金牌服务用户   /  发表于:2017-7-13 17:32  /   查看:6978  /  回复:12
我想把原有的round函数改掉,不是修改formula.js吗?怎么把方法里的所有代码去掉还好用呢?
image.png984410400.png

12 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-13 21:26:08
沙发
确认下您是想修改round 这个函数的功能,换句话说是想重写他,改变执行后的结果是吗?
回复 使用道具 举报
kotoYY
金牌服务用户   /  发表于:2017-7-14 09:36:22
板凳
dexteryao 发表于 2017-7-13 21:26
确认下您是想修改round 这个函数的功能,换句话说是想重写他,改变执行后的结果是吗?

是的,现在这个round不是我们想要的。
回复 使用道具 举报
kotoYY
金牌服务用户   /  发表于:2017-7-14 10:46:11
地板
dexteryao 发表于 2017-7-13 21:26
确认下您是想修改round 这个函数的功能,换句话说是想重写他,改变执行后的结果是吗?

我是不是改错文件了,不是这个js?
没找到是哪个js呢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-14 14:26:32
5#
本帖最后由 dexteryao 于 2017-7-14 14:28 编辑

不是改那个,你要重写原来的方法
var roundFunction = GC.Spread.CalcEngine.Functions.findGlobalFunction("ROUND")
roundFunction.evaluate = function(number, digits){
    return number * digits;
}
代码加到全局的初始化就可以。
不推荐这样做,这个如果导出Excel 后那么计算结果肯定就不一样了。您可以定义一个自己的函数和Excel的函数区分:
http://demo.gcpowertools.com.cn/ ... les/customFunctions
回复 使用道具 举报
kotoYY
金牌服务用户   /  发表于:2017-7-14 14:31:34
6#
dexteryao 发表于 2017-7-14 14:26
不是改那个,你要重写原来的方法
var roundFunction = GC.Spread.CalcEngine.Functions.findGlobalFunctio ...

哦哦 那我自定义的函数导出到Excel还会有吗?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-14 15:17:20
7#
kotoYY 发表于 2017-7-14 14:31
哦哦 那我自定义的函数导出到Excel还会有吗?

这个不行,毕竟Excel与spread实现的逻辑不同,咱们的自定义函数无法导入到Excel中。
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2017-7-14 15:35:14
8#
导入到 Excel 中以后公式还在,但是 Excel 的计算结果会变成 #NAME?
回复 使用道具 举报
kotoYY
金牌服务用户   /  发表于:2017-7-14 15:45:29
9#
dexteryao 发表于 2017-7-14 14:26
不是改那个,你要重写原来的方法
var roundFunction = GC.Spread.CalcEngine.Functions.findGlobalFunctio ...

我测试了,改了round函数导出excel,excel重新进行round了,1.00变成1了。我可以在转换成Excel之前把公式去掉,好像没有去掉所有函数的方法吧?打印的时候我只要数值和样式,不要公式。
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2017-7-14 15:52:36
10#
需要 toJSON 之后自己把 JSON 中的公式去掉。

如果你的真实用例是想要显示的值保留两位小数的话,建议在公式中把 round 去掉,然后设置 format 为 0.00,这样单元格的值就是真实值,但是会显示两位小数。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部