找回密码
 立即注册

QQ登录

只需一步,快速开始

囡囡~

金牌服务用户

34

主题

110

帖子

340

积分

金牌服务用户

积分
340
囡囡~
金牌服务用户   /  发表于:2024-5-9 10:34  /   查看:2735  /  回复:8
1金币
本帖最后由 Richard.Huang 于 2024-5-29 11:21 编辑

产品:SpreadJS
版本:V16.2.2
调研编号:SJS-24157

在spreadJS官网上这个单元格展示的是正常的数值, 但是下载的excel展示的是科学计数法, 怎么配置可以让excel跟spreadJS显示一致
image.png698147887.png
image.png60998534.png

新建文本文档.zip

1.55 MB, 下载次数: 1725

最佳答案

查看完整内容

您好,正如楼上所述,目前SpreadJS中的表现受限于JavaScript的特性,所以与Excel中显示的效果不一样,我们这边也无法修改Excel中显示的效果,最直接的办法还是通过设置Formatter来实现。

8 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-9 10:34:46
来自 8#
您好,正如楼上所述,目前SpreadJS中的表现受限于JavaScript的特性,所以与Excel中显示的效果不一样,我们这边也无法修改Excel中显示的效果,最直接的办法还是通过设置Formatter来实现。

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-9 13:43:43
2#
您好,您描述的情况我了解了,此处SpreadJS的表现与Excel不一致,这边调研一下,后续有进展我会在本贴中回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-13 10:01:00
3#
本帖最后由 Joestar.Xu 于 2024-5-13 10:20 编辑

您好,经调研,根本原因如下:

当SpreadJS渲染一个数字值时,我们会检查单元格值是否是科学计数法:

image.png167890013.png

如果值为科学计数法并使用“常规”的Formatter时,SpreadJS将不会扩展该值(显示为0.0000075443),而是会尝试使用内部的科学计数法格式过程来处理这种情况。

如果值不是科学记数法并使用“通用”的Formatter时,SpreadJS将使用通用数字格式处理来处理这种情况。

在Excel中,0.0000075443将被判断为科学记数法,而不是标准浮点数。

image.png537629394.png

所以在Excel中将显示为7.5443e-7。

所以如果您想要让SpreadJS和Excel导出的一致的话,建议您使用高精度的Formatter来实现这个需求,如“0.#################”,这样一来SpreadJS 将显示与 Excel 相同的内容。
回复 使用道具 举报
囡囡~
金牌服务用户   /  发表于:2024-5-13 10:14:13
4#
是要设置单元格格式,才能解决吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-13 10:20:49
5#
您好,是的哈,目前来说只有这样才能实现您的需求。
回复 使用道具 举报
囡囡~
金牌服务用户   /  发表于:2024-5-13 10:31:54
6#
咱们产品后续有没有需求, spreadJS展示的是什么, 导出excel也是一样的值
回复 使用道具 举报
前端小白
超级版主   /  发表于:2024-5-13 12:00:52
7#
那怕是不行吧,SpreadJS干不过Excel,为了能一样,怕是要改SpreadJS,让SpreadJS对这个浮点值也显示成7.5443e-7,以求导出Excel后显示成一样的。

但看你表里的内容,肯定是不乐意的。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-29 11:21:48
9#
您好,由于您长时间未回帖,本贴就先作结帖处理了,后续如果有其他新的问题,欢迎继续发新帖询问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部