找回密码
 立即注册

QQ登录

只需一步,快速开始

大白菜

中级会员

77

主题

257

帖子

882

积分

中级会员

积分
882

圣诞拼拼乐微信认证勋章

大白菜
中级会员   /  发表于:2023-6-16 14:01  /   查看:821  /  回复:5
发现一个很奇怪的问题;Gcexcel V5.1.2版本;
使用了 =MONTH() 、=YEAR()  这两个公式在Windows 和LInux 环境计算有差异。

比如都是取数A1,MONTH(A1) ,
我A1,cellRange.setValue() 为“2023-06”,这种年月字符串;
在Windows计算结果不影响;
在linux则getValue返回计算错误Value.

如果我setValue 为 “2023-06-15”,这种完整的年月日,则getValue都正常。

5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-28 10:23:51
来自 6#
您好,此问题因为需要linux环境调研,所以回复的慢了一些。目前问题的结论如下:

问题原因:本地化设置不同导致,英文环境不管是gcexcel还是excel本身都是不支持这个转换的。结果显示出来都是#Value
linux默认的是Locale设置是英语,所以会导致这个问题。windows我们一般用的是中文本地化设置。

解决办法可以任选其一:
1.gcexcel提供了setCulture方法来设置本地化,设置为CHINESE即可,在workbook初始化后设置即可
  1.         workbook.setCulture(Locale.CHINESE);
复制代码


2.可以将linux环境本身设置为中文。
比如临时设置可以用
  1. export LANG=zh_CN.UTF-8
复制代码


getValue返回的是一个object对象,根据具体值的不同类型也不一样,在这里返回的是一个CalcError对象,只是输入打印为了Value,你用getText就能得到实际显示的#Value
image.png244297179.png

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-16 16:51:46
沙发
您好,您尝试在GCExcel 6.1.1的版本中看一下是否还能够复现?
SpreadJS 17.0.8 | GcExcel 7.1.0 已发布~
回复 使用道具 举报
大白菜
中级会员   /  发表于:2023-6-16 16:54:04
板凳
没有这个版本,我们购买的是5.0版本的
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-16 17:49:18
地板
大白菜 发表于 2023-6-16 16:54
没有这个版本,我们购买的是5.0版本的

您好,这个问题比较复杂,我们这边需要时间调研一下,最快下周一给您回复。
SpreadJS 17.0.8 | GcExcel 7.1.0 已发布~
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-19 17:04:49
5#
此问题仍在调研,明天给您答复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部