找回密码
 立即注册

QQ登录

只需一步,快速开始

观远前端
金牌服务用户   /  发表于:2023-10-16 11:21  /   查看:6714  /  回复:18
1金币
本帖最后由 Joestar.Xu 于 2024-5-28 10:07 编辑

产品:SpreadJS、GcExcel
版本:V16.2.3、V6.2.1
问题编号:DOCXLS-9080
LastReview:2024-05-28
2023/12/28:此问题初步计划在V7.1修复,如有新的进展贴中更新。

值为
1.7976931348623157e+308

-1.7976931348623157e+308


如下截图,将该值输入到单元格中,然后设置格式为百分比,页面会卡死

image.png38127745.png



评分

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

查看全部评分

18 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-16 13:41:57
沙发
您好,我理解您的意思,您的问题是,将1.7976931348623157e+308的格式设置为百分比后,页面会卡死是吗,我在我们官网的在线表格编辑器复现了您的问题
image.png113235777.png

但是将1.7976931348623157e+308转换为百分数没有具体意义,因为百分数是用来表示相对值或比例的,而这个数字已经超出了双精度浮点数的表示范围。请问您是什么样的场景和需求需要用到对此类数字作百分比格式化呢
回复 使用道具 举报
观远前端
金牌服务用户   /  发表于:2023-10-16 14:05:39
板凳
Richard.Huang 发表于 2023-10-16 13:41
您好,我理解您的意思,您的问题是,将1.7976931348623157e+308的格式设置为百分比后,页面会卡死是吗,我 ...

这个数字不是故意写死的静态数据,而是通过 GcExcel 处理后生成的结果导入到 SpreadJS 中导致页面卡死,期望 SpreadJS 能做优化,处理这种特殊场景,因为以【常规】来展示,是没有问题的。

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-16 14:20:35
地板
好的,您的需求已收到,我们会进一步调研,后续有相关进展我会在本贴中给您回复。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-17 11:14:15
5#
您好,根据调研,我们还有部分信息需要跟您确认
1. 1.7976931348623157e+308这个值是GcExcel从后端传入SpreadJS的,这个值的具体场景是什么样的,我们为什么会将这样一个值的格式设置为百分比,以及什么场景下会产生这样一个数值

2. 1.7976931348623157e+308在前端解析出来就是一个无限(Infinity)
image.png814374999.png
当一个数值超出了JavaScript的数值表示范围时,它就会被解析为Infinity。Infinity在数值运算中被用作特殊的标识符。
因此您希望的SpreadJS的优化是什么,是显示Infinity还是和“常规”格式展示相同的值呢?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-18 11:58:03
6#
您好,请问您的问题按照楼上的解释能否得到解决,如果仍存在相关疑问,能否如上面所说表述您期望的优化是什么,方便我们更好地测试
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-10-19 10:47:52
7#
您好,请问上述回答是否可以解决您的问题,如果问题还未解决,您可以将您的希望说明一下。
回复 使用道具 举报
观远前端
金牌服务用户   /  发表于:2023-10-19 11:26:10
8#
Richard.Huang 发表于 2023-10-17 11:14
您好,根据调研,我们还有部分信息需要跟您确认
1. 1.7976931348623157e+308这个值是GcExcel从后端传入Spr ...

当数据字段值为 null, 使用 GcExcel 的 max/min 函数计算,就会出来这个值。
image.png148705138.png
image.png775491637.png

1. 首先期望的优化是肯定不可以让页面卡死
2. 在无法计算时,可以考虑:
   方案a. 与【常规】一样展示,否则用户根本也不知道Infinity 是个啥
   方案b. 类似 Excel 的 #VALUE! 的错误展示
3. 需要排查是否是 GcExcel 的 max 和 min 函数的Bug
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-19 15:57:41
9#
观远前端 发表于 2023-10-19 11:26
当数据字段值为 null, 使用 GcExcel 的 max/min 函数计算,就会出来这个值。

您好,您所说的”当数据字段值为 null, 使用 GcExcel 的 max/min 函数计算,就会出来这个值“这应该是您业务中的逻辑吧?这个我们在本地无法验证您的该操作
image.png513247985.png
请问能否提供一份可供我们复现的后端GcExcel的Demo,方便我们后续调研是否是GcExcel的Bug,从而帮您从根本上解决该问题避免后续该问题的发生
回复 使用道具 举报
观远前端
金牌服务用户   /  发表于:2023-10-19 19:20:52
10#
本帖最后由 观远前端 于 2023-10-19 19:22 编辑
Richard.Huang 发表于 2023-10-19 15:57
您好,您所说的”当数据字段值为 null, 使用 GcExcel 的 max/min 函数计算,就会出来这个值“这应该是您 ...

需要以  {{=MIN(ds.count)}} 的形式复现,稍后整理一个demo 补充在帖子里,除了排查 GcExcel 的问题, SpreadJS 的优化也是需要做的,谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部