carl_chen 发表于 2024-3-26 00:00:34

【F-21627】【9.0.102】DATEVALUE函数在页面和服务端命令中表现不一致

本帖最后由 Nathan.guo 于 2024-3-26 18:02 编辑




结果如下:



demo

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

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:hjyzw:

因为这个问题浪费了差不多2个半小时,我想确认下这有没有可能是个bug!

Nathan.guo 发表于 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

Simon.hu 发表于 2024-11-18 08:45:05

此问题已经在活字格10.0.102.0中修复,您可以再官网下载最新版使用测试
页: [1]
查看完整版本: 【F-21627】【9.0.102】DATEVALUE函数在页面和服务端命令中表现不一致