找回密码
 立即注册

QQ登录

只需一步,快速开始

super825

初级会员

11

主题

33

帖子

271

积分

初级会员

积分
271

微信认证勋章

QQ
super825
初级会员   /  发表于:2017-8-14 22:09  /   查看:4107  /  回复:9
表格里有一列编码列,需要显示为03215203这样的字符串(是以字符串设置值到单元格的),但是spread.sheet会处理成数字,这个转数字功能有没有选项屏敝,或者有没有办法重写默认转换功能。有个老贴里有个处理方式,试过了不行

9 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-15 11:23:59
沙发
您好。我刚刚尝试重现您的问题,我是sheet.setValue(0,0,"001234567");直接设置一个字符串给单元格,结果并没有重现问题,您能否提供一个相关的demo,我们看一下。
回复 使用道具 举报
super825
初级会员   /  发表于:2017-8-15 23:24:29
板凳
请看附件代码,一开始显示是对的,显示为02315203,双击进入编辑状态后,修改为02315204, 结束编辑,会显示为2315204,前面的0丢失

0开头字符串显示为数字.rar

2.14 MB, 下载次数: 104

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-16 09:16:40
地板
super825 发表于 2017-8-15 23:24
请看附件代码,一开始显示是对的,显示为02315203,双击进入编辑状态后,修改为02315204, 结束编辑,会显示 ...

明白您的意思了
原因是格式默认设置的是自动,这个会根据您输入的数据自动转换为匹配的类型,所以您输入02315204就会被自动识别为数字。
解决方法是将这一列的单元格的格式设置为字符串,使用sheet.setFormatter(-1, colindex, '@');将这一列所有单元格的格式转换为文本格式即可。
回复 使用道具 举报
super825
初级会员   /  发表于:2017-8-16 11:53:23
5#
有没有配置项可以设置,全局去掉这个行为
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-16 17:54:58
6#
super825 发表于 2017-8-16 11:53
有没有配置项可以设置,全局去掉这个行为

您好,全局设置不建议您这么做,因为您只有一列编号列需要设置为文本格式,但是全局设置是设置所有的单元格,这样可以引起其他的问题。
回复 使用道具 举报
super825
初级会员   /  发表于:2017-8-16 22:39:09
7#
本帖最后由 super825 于 2017-8-16 23:13 编辑

为什么sheet.bindColumn方法不能设置?
            sheet.setDataSource([{
                'partNumber': '02315203',
                'country': 'American'
            }]);

            sheet.bindColumn({
                name: 'partNumber',
                displayName: '编码',
                size: 100,
                formatter: '@'
            });

见附件代码


0开头字符串显示为数字.rar

2.14 MB, 下载次数: 113

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-17 09:56:05
8#
您好
首先,如果绑定数据源在绑定时进行设置也是可以的,因为之前并不知道您的数据是怎样加载的,所以给您说的是通用的方法。
第二点,您demo写法有些问题,bindColumn方法没有生效。我改了一下您的方法,您参考一下看看,这样就是否满足您的要求。
回复 使用道具 举报
super825
初级会员   /  发表于:2017-8-18 23:00:40
9#
项目组用的是V10.1.1 版本,
sheet.bindColumn(0, {
     name : 'no'
     displayName: '编码',
     size:  100,
     formatter: '@'
});
不起作用是什么鬼?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-21 09:59:52
10#
您好,之前说的demo好像没传上去,我重新传一下,您参考我demo中的写法进行修改。

0开头字符串显示为数字.zip

2.29 MB, 下载次数: 92

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