innerwang 发表于 2024-11-21 10:23:34

公式计算结果与 Excel 有差异

本帖最后由 Wilson.Zhang 于 2024-11-28 10:40 编辑

产品:SpreadJS
版本:17.1.9
调研编号:SJS-27430
Last Review:2024-11-28
当前进展:非问题,通过区域代码使用,且SpreadJS目前仅支持804(中国)、409(美国)、411(日本)、412(韩国)。

=TEXT(NOW()-1,"[$-en-cn]mmm")这个公式在 excel 和 wps 中都显示的是 Nov


但是 SpreadJS 显示的是 11月,https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html 可复现

Wilson.Zhang 发表于 2024-11-21 10:23:35

innerwang 发表于 2024-11-22 17:32
为什么只有区域代码ok,   en-cn 这种写法不可以呢?

这个区域代码有对照表可以查询吗?
以您提供的公式理解您可能希望根据指定的语言格式显示当前日期中的月份,mmm表示三字母月份缩写,比如当前月份11月对应的英文缩写即为Nov,可以参考如下链接资源了解(Answers中的第一个即是):
https://stackoverflow.com/questions/894805/excel-number-format-what-is-409

因此,在使用时需要用正确的区域语言代码,en-cn貌似不是一个正确的区域代码,409代表美式英语。除此之外,SpreadJS还支持中国(804)、日本(411)、韩国(412)。

我在网上找到了相关的区域代码对照表,参考如下链接:
https://www.science.co.il/language/Locale-codes.php#google_vignette

Wilson.Zhang 发表于 2024-11-21 12:24:56

本帖最后由 Wilson.Zhang 于 2024-11-21 12:26 编辑

您好!中英文环境下该公式的计算结果不同,为了适应对应语种下的使用习惯,将culture切换为英语语种即可,如下图所示:

innerwang 发表于 2024-11-21 16:47:05

Wilson.Zhang 发表于 2024-11-21 12:24
您好!中英文环境下该公式的计算结果不同,为了适应对应语种下的使用习惯,将culture切换为英语语种即可, ...
可是我现在电脑系统也是使用的中文啊,wps 和 excel 就仍然是 Nov 呢


这个算是SpreadJS自己做的优化吗?

Wilson.Zhang 发表于 2024-11-22 09:22:02

innerwang 发表于 2024-11-21 16:47
可是我现在电脑系统也是使用的中文啊,wps 和 excel 就仍然是 Nov 呢




我帮您调研下先,调研编号为SJS-27430,之后会向及时向您同步结论,请您耐心等候。

Wilson.Zhang 发表于 2024-11-22 13:46:29

请教下您公式中的“en-cn”是什么?经调研,使用=TEXT(NOW()-1,"[$-409]mmm")即可获得英文格式月份,该公式在Excel中同样要有效,如下图所示:

innerwang 发表于 2024-11-22 16:55:18

本帖最后由 innerwang 于 2024-11-22 16:56 编辑

Wilson.Zhang 发表于 2024-11-22 13:46
请教下您公式中的“en-cn”是什么?经调研,使用=TEXT(NOW()-1,"[$-409]mmm")即可获得英文格式月份,该公式 ...
en-cn 是客户写的,猜测是想显示为英文,试了如下也都是显示为中文


这个 409 是什么意思呢?

以及还是要确认为啥会与 excel 有区别呢?

Wilson.Zhang 发表于 2024-11-22 17:24:42

innerwang 发表于 2024-11-22 16:55
en-cn 是客户写的,猜测是想显示为英文,试了如下也都是显示为中文




409是区域代码,代表了英语(美国)。如果您需要SpreadJS和Excel对公式TEXT(NOW()-1)的显示结果都为英文格式,就是用这个区域代码。

innerwang 发表于 2024-11-22 17:32:13

Wilson.Zhang 发表于 2024-11-22 17:24
409是区域代码,代表了英语(美国)。如果您需要SpreadJS和Excel对公式TEXT(NOW()-1)的显示结果都为英文 ...
为什么只有区域代码ok,   en-cn 这种写法不可以呢?

这个区域代码有对照表可以查询吗?

innerwang 发表于 2024-11-27 14:37:21

本帖最后由 innerwang 于 2024-11-27 14:53 编辑

Wilson.Zhang 发表于 2024-11-25 09:37
以您提供的公式理解您可能希望根据指定的语言格式显示当前日期中的月份,mmm表示三字母月份缩写,比如当 ...
按照你这个说法,SpreadJS是指支持区域代码这一种写法吗?且只支持你提到的这几种?

我试了下使用 en-us 也是不支持的





而 excel 是可以直接使用语言来格式化的, 如下图所示,但是SpreadJS 看起来并不支持



页: [1] 2
查看完整版本: 公式计算结果与 Excel 有差异