找回密码
 立即注册

QQ登录

只需一步,快速开始

BND

高级会员

170

主题

526

帖子

1826

积分

高级会员

积分
1826
BND
高级会员   /  发表于:2024-5-10 11:38  /   查看:2414  /  回复:5
1金币
本帖最后由 Richard.Huang 于 2024-5-10 14:27 编辑

产品:GcExcel
版本:V7.1.0
调研编号:DOCXLS-10331

如图所示:
image.png529743957.png
SpreadJS模板设置公式可正确计算
GcExcel做计算后获取单元格结果不正确
具体请下载demo解压后运行Test.java文件
日期类函数读取结果为"Value" 目前发现包括但不限于这个EOMONTH函数会有问题

请帮忙定位问题,GC版本为7.1.0
image.png179461363.png

gcTest.zip (18.2 KB, 下载次数: 1497)
image.png425511168.png
image.png593764037.png
image.png131212157.png

最佳答案

查看完整内容

您好,经调研,这个是由于您使用Locale.US的原因。 在英文环境下,'2024-1-1'是一个字符串,不会被认为日期类型,只有在中文环境下,才会被识别为日期类型。 所以,将您的Locale.US换成Locale.CHINA将不会出现此问题。 关于dirty(),您注释掉dirty(),会从缓存中拿取值。 在Locale.US的基础上,运行dirty(),公式会参与计算,由于不能识别这个日期,所以显示#VALUE。 所以,您需要修改Locale.US为Locale.CHINA,可以解 ...

5 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-5-10 11:38:34
来自 6#
本帖最后由 Ellia.Duan 于 2024-5-11 17:04 编辑

您好,经调研,这个是由于您使用Locale.US的原因。
在英文环境下,'2024-1-1'是一个字符串,不会被认为日期类型,只有在中文环境下,才会被识别为日期类型。
所以,将您的Locale.US换成Locale.CHINA将不会出现此问题。


关于dirty(),您注释掉dirty(),会从缓存中拿取值。
在Locale.US的基础上,运行dirty(),公式会参与计算,由于不能识别这个日期,所以显示#VALUE

所以,您需要修改Locale.US为Locale.CHINA,可以解决此问题。
image.png896824645.png
另外,不建议您使用Locale.US,除了上述原因外,
还有其他原因:
如在换行规则上,中英文的换行规则不一致,导致导出PDF时,可能某些单元格的值,在不同位置换行。
还有 字符,可能会出现英文字符。

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-10 14:05:56
2#
本帖最后由 Richard.Huang 于 2024-5-10 14:26 编辑

您好,您在帖子中所描述的现象我在本地进行了重现,至于该现象的原因我们还需要进行进一步的调研定位。后续有相关调研进展我会第一时间在本贴中进行跟进。调研编号:DOCXLS-10331
回复 使用道具 举报
BND
高级会员   /  发表于:2024-5-10 16:06:35
3#
已知有问题的函数包括EOMONTH,YEAR,MONTH,在处理yyyy-MM格式日期时无法正确计算出结果
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-10 18:08:19
4#
BND 发表于 2024-5-10 16:06
已知有问题的函数包括EOMONTH,YEAR,MONTH,在处理yyyy-MM格式日期时无法正确计算出结果

感谢您的反馈,我们会针对您提供的信息进行详细调研
回复 使用道具 举报
BND
高级会员   /  发表于:2024-5-11 16:46:10
5#
Richard.Huang 发表于 2024-5-10 18:08
感谢您的反馈,我们会针对您提供的信息进行详细调研

怎么样了?这个是生产问题,很急的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部