找回密码
 立即注册

QQ登录

只需一步,快速开始

风云零到九

注册会员

9

主题

21

帖子

66

积分

注册会员

积分
66
风云零到九
注册会员   /  发表于:2021-11-7 21:29  /   查看:2033  /  回复:7
本帖最后由 风云零到九 于 2021-11-13 09:03 编辑

版主好:
       咨询一个问题:我们有一个单元格,比如A1单元格,用户可能输入13.00,还有一个B1单元格,需要引用A1单元格进行计算,比如公式为B1=A1*1.3,A1单元格输入13.00,在不设置单元格格式的情况下,尾数.00依然保留显示,同时还不影响单元格的计算,请问应该如何处理?谢谢。

7 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-8 10:18:31
沙发
用户在A1输入13.00,默认情况下会显示为13,除非你设置了单元格格式为保留2位小数,或者输入时加"'"作为字符串输入“  '13.00  ”

但是这两种设置方式都不会影响后续的计算,你目前遇到的情况是怎样的,是无法计算还是?
回复 使用道具 举报
风云零到九
注册会员   /  发表于:2021-11-8 10:46:21
板凳
如果让用户每次输入的时候,前面加一个单引号再输入具体的数字,会让用户觉得麻烦,还有更加简单的处理办法吗
回复 使用道具 举报
风云零到九
注册会员   /  发表于:2021-11-8 10:50:28
地板
另外我们在单元格上增加了条件判断,比如判定输入值是否在某个区间内,比如5≤x≤10,来判定是否合格,因为带了单引号是否影响判断?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-8 11:08:57
5#
如果你是想要保留两位数字单元格,可以通过代码预设单元格格式,这样用户在输入时就不用再去设置了
https://demo.grapecity.com.cn/sp ... ic-formatter/purejs

数字前面加'确实不是一个好方案,刚刚只是为了了解你这边目前遇到的情况。建议还是按照常规方式显示数字
回复 使用道具 举报
风云零到九
注册会员   /  发表于:2021-11-8 11:34:36
6#
或者有没有可能我们的程序自行判断,当用户录完数值后,我们自己捕捉到有小数位数,并且小数位数的尾数是0,我们自行在结果值的前面拼接上单引号,至少可以减少用户的操作复杂度。
回复 使用道具 举报
风云零到九
注册会员   /  发表于:2021-11-8 11:58:08
7#
版主好!
      因为用户的测试数据来源于设备,设备出来的数据,几位小数是不确定的,故不能提前进行小数位数的预设设置,麻烦看还有其他的解决方案吗,谢谢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-8 12:01:03
8#
你可以在editending事件中,来根据文本内容,设置对应的格式,不建议在这里直接添加单引号

比如下面的代码,在当前编辑文本的小数点>5时,设置格式为保留5位小数

  1. workbook.getActiveSheet().bind(GC.Spread.Sheets.Events.EditEnding, function (sender, args) {
  2.     if(args.editingText.split(".")[1].length>5 ) workbook.getActiveSheet().setFormatter(args.row,args.col,"0.00000");
  3. });
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部