找回密码
 立即注册

QQ登录

只需一步,快速开始

carl_chen 悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2024-3-26 00:00  /   查看:462  /  回复:3
本帖最后由 Nathan.guo 于 2024-3-26 18:02 编辑




结果如下:



demo

DATEVALUE函数在页面和服务端命令中表现不一致,这是为什么呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
renho活字格认证
银牌会员   /  发表于:2024-3-26 00:19:25
沙发
我合理猜测应该是实现逻辑不一样
正常情况下(包括在excel中)DATEVALUE返回的就是整数
服务端里面的DATEVALUE可能是用c#去重新实现了一遍
猜测应该是 DateTime.Parse.ToOADate()这种方式
这种本身是能处理具体时间这种情况的

所以你想要两种等效的话,可以稍微进行处理一下
1.在页面中使用
=DATEVALUE(G7) + TIMEVALUE(G7)   这样去把时间部分加上
2.时间文本就不要去包含时间,这样两种方式自然一致。
3.在服务端对DATEVALUE(时间文本)进行取整,这样也能保持结果一致。
回复 使用道具 举报
carl_chen悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2024-3-26 08:58:22
板凳
嗯嗯,您的猜测很有可能是正确的。 处理方法也OK

因为这个问题浪费了差不多2个半小时,我想确认下这有没有可能是个bug!
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2024-3-26 09:56:45
地板
本帖最后由 Nathan.guo 于 2024-3-26 18:02 编辑
carl_chen 发表于 2024-3-26 08:58
嗯嗯,您的猜测很有可能是正确的。 处理方法也OK

因为这个问题浪费了差不多2个半小时,我想确认 ...

大佬,这个问题这边调查下,有结论立刻同步哈~~

问题跟进:如楼上大佬所说,目前导致这个现象的原因是前端和服务端公式计算引用的类库不一样,前端公式计算用的SpreadJS,服务端公式计算主要用的是GCExcel ,两个类库计算结果不一致,所以导致这个问题出现

这个问题后续会作为一个BUG处理,编号:21627
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部