找回密码
 立即注册

QQ登录

只需一步,快速开始

xiaolong

金牌服务用户

97

主题

378

帖子

1033

积分

金牌服务用户

积分
1033

[已处理] 关于百分比设置

xiaolong
金牌服务用户   /  发表于:2019-3-13 23:23  /   查看:6383  /  回复:13
excel设置百分比格式后,输入1显示1%,spread显示100%。这是某个地方设置的原因吗?

13 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-14 10:43:21
沙发
您好,实际上对单元格的数据格式来说,数据格式本意是对单元格value的一种格式化,

不会也不应该对单元格的值造成破坏,Excel这里实际上是做了一个运算,

原值为1时,设置百分比格式后单元格的值变为了0.01,

SpreadJS没有这步运算,当然如果您有这个需要,

可以通过SpreadJS提供的事件或自定义数据格式等接口来实现。
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-14 14:18:25
板凳
KevinChen 发表于 2019-3-14 10:43
您好,实际上对单元格的数据格式来说,数据格式本意是对单元格value的一种格式化,

不会也不应该对单元 ...

已经通过EditEnded把输入的值/100,但是这步判断其实应该放在spread里,而不是我们去写代码控制吧。。。不是应该跟excel保持同步吗
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-15 10:32:44
地板
SpreadJS中对formatter修改原则上都是不影响dataSource的,除非用户或编码有意识地修改dataSource,否则数据源不应该被SpreadJS悄悄更改,这个是咱产品的设计原则。
当然,SpreadJS也为用户提供了自定义的接口,如果这里的值需要随formatter改变,也可以实现。
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-15 11:32:10
5#
KevinChen 发表于 2019-3-15 10:32
SpreadJS中对formatter修改原则上都是不影响dataSource的,除非用户或编码有意识地修改dataSource,否则数 ...

我没太明白您说的意思,dataSource是指excel吗
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-15 17:54:22
6#
xiaolong 发表于 2019-3-15 11:32
我没太明白您说的意思,dataSource是指excel吗

抱歉没解释清楚,这里的dataSource实际上是指SpreadJS表格中承载的数据,

通常情况下用的较多的方式就是前端绑定数据源,当然Excel中的数据也可以认为是dataSource,

比如您从Excel中导入的数据,SpreadJS会认为这就是数据源。
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-25 17:43:57
7#
KevinChen 发表于 2019-3-15 17:54
抱歉没解释清楚,这里的dataSource实际上是指SpreadJS表格中承载的数据,

通常情况下用的较多的方式就 ...

用Formatter.FormatterBase()的话,判断条件应该怎么写
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-25 19:01:13
8#
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-26 14:41:06
9#
KevinChen 发表于 2019-3-25 19:01
参考API示例:

https://demo.grapecity.com.cn/spreadjs/help/v12/content/webframe.html#SpreadJS~GC.S ...

image.png714190673.png 设置之后初始化没问题,但是一旦单元格的值发生变化,设置就失效了 image.png194748839.png 比如说拖拽 image.png412278136.png 或者说填写值

demo.zip

162.28 KB, 下载次数: 106

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-26 17:55:43
10#
您注意debug一下,实际上在您修改单元格的值时,走的是parse方法:
就是您代码中的这个方法:
  1. customFormatterTest.parse = function(str) {
  2.     if(!str) {
  3.         return '';
  4.     }
  5.     return str;
  6. }
复制代码


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