找回密码
 立即注册

QQ登录

只需一步,快速开始

易Hr

初级会员

21

主题

87

帖子

258

积分

初级会员

积分
258
易Hr
初级会员   /  发表于:2021-5-7 17:24  /   查看:4847  /  回复:10
1金币
在Excel中的数据是 image.png259584655.png
GcExcel中获取getValue 的值是
image.png454001464.png

两个值差一秒。
附件是测试数据

testdate.rar

199.45 KB, 下载次数: 351

10 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-7 17:54:10
沙发
收到,您的问题已经重现,原因应该是精度误差导致的。GcExcel底层用的是Java在小数精度上跟Excel存在略微的差异。从下图可以看出来真正的差异是在小数点后面的舍入上
image.png960300903.png
目前该问题已经上报了,bug编号 DOCXLS-4055
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-10 12:17:41
板凳
您好:
您用的Java 版本是否是Java8及以上
如果是的话,解决方案是同时引用安装包中的gcexcel.extension即可,下面附上maven中gcexcel.extension的地址:
  1. <!-- https://mvnrepository.com/artifact/com.grapecity.documents/gcexcel.extension -->
  2. <dependency>
  3.     <groupId>com.grapecity.documents</groupId>
  4.     <artifactId>gcexcel.extension</artifactId>
  5.     <version>4.1.0</version>
  6. </dependency>
复制代码
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-5-10 15:03:55
地板
ClarkPan 发表于 2021-5-10 12:17
您好:
您用的Java 版本是否是Java8及以上
如果是的话,解决方案是同时引用安装包中的gcexcel.extension ...

是java8  是否是直接加入这个扩展包就可以了?
以后升级是否是随着gcexcel版本号一起升级?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-10 15:10:26
5#
是的,java8可以直接引用。这个文件一直在安装包中都有,都会随着版本升级的。
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-5-10 15:19:16
6#
ClarkPan 发表于 2021-5-10 15:10
是的,java8可以直接引用。这个文件一直在安装包中都有,都会随着版本升级的。

稍等下 这个值我看着现在返回的变成了localdate  而且这个值获取的还是跟上面的类似  还是差一秒。。 image.png687573547.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-10 15:39:31
7#
实际上Excel的真实值就是18:30:00.995,Excel自己显示的时候四舍五入了。
这个如果要获取跟显示值一样就用getText,不要用getValue
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-5-10 15:44:41
8#
ClarkPan 发表于 2021-5-10 15:39
实际上Excel的真实值就是18:30:00.995,Excel自己显示的时候四舍五入了。
这个如果要获取跟显示值一样就用 ...

那其实这个新加的包和 之前date取值是一样的。。我没懂这个区别在哪 除了date 和localtime的区别
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-10 18:16:57
9#
之前获取的是18:30:00,现在获取的是18:30:00.995,后面是对的前面是错的
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-5-11 11:35:14
10#
ClarkPan 发表于 2021-5-10 18:16
之前获取的是18:30:00,现在获取的是18:30:00.995,后面是对的前面是错的

不能在date 上做么? 只能在localdatetime 处理么? 因为我们的系统存储 并没有升级到localdatetime
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部