找回密码
 立即注册

QQ登录

只需一步,快速开始

IwantU
金牌服务用户   /  发表于:2017-7-6 14:46  /   查看:4943  /  回复:8
在单元格里面添加了时间日期,控件把数据发送并保存到后台,回到控件中查看时,时间日期的格式发生错误。spreadjs9 QQ图片20170706144003.png

8 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-6 17:09:51
沙发
image.png344149169.png
您好,我们目前没有重现您的问题,请您能够提供详细的重现问题的步骤,或者原型demo示例,帮助我们重现问题。
回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2017-7-8 17:18:57
板凳
本帖最后由 IwantU 于 2017-7-8 17:21 编辑

我是通过getArray拿到值的,传到后台就不对了 _D0UJJ7E$PY0OUN(UE]594X.png

第5行是没传过去的时候的值,第2行是传回来的值,估计是样式没传过去,怎么解决这个问题呢。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-10 12:11:06
地板
IwantU 发表于 2017-7-8 17:18
我是通过getArray拿到值的,传到后台就不对了

第5行是没传过去的时候的值,第2行是传回来的值,估计是样 ...

您好,getArray那到的值是value,并不是formatter之后展示的值,您的意思我理解为您需要获取到页面formatter之后展示的值,这样的话您可以使用for循环然后在循环中使用getText()来获取。
回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2017-7-17 17:35:40
5#
Z@NH5`V$$O868{H6Y{7S24N.png
这个时间 toJSON后不一样啊 怎么改啊
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-17 18:06:22
6#
IwantU 发表于 2017-7-17 17:35
这个时间 toJSON后不一样啊 怎么改啊

您好,toJSON后不一样的原因是因为赋值时不一致导致,一个时字符串,一个是一个时间类型,那么toJSON后肯定不一样,最好的方法肯定是在后端进行统一
至于OAdate转换如果前端做的话就要先解析字符串获取内部的int  42826 然后用特定的方法转换时间。
也有一种偷懒的方法可以利用我们的tag进行解决,您可以参考:
http://gcdn.gcpowertools.com.cn/ ... mp;highlight=OADate
不过建议最好还是在后端传入是进行统一
回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2017-8-2 11:32:31
7#
没看懂 你sheet.tag(oadata()) 意思是所有涉及sheet都要写这一个?
我现在的做法是保存到后端时 ,
Date.prototype.toJSON = function () {
                         //return this.toLocaleString().replace("上午","").replace("下午", "");
                         return this.getFullYear()+"/"+(this.getMonth()+1)+"/"+this.getDate()+" "+this.getHours()+":"+this.getMinutes()+":"+this.getSeconds();

        }
强行把时间原型重写。回显到表格也正常。但是我导出的时候就变成了
blob925435790.png

回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2017-8-2 11:35:58
8#
通过getArray重写时间函数导出到Excel是正常的,但是通过spread4toJSON() 导出就是这样了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-2 18:17:37
9#
本帖最后由 ClarkPan 于 2017-8-2 18:18 编辑
IwantU 发表于 2017-8-2 11:35
通过getArray重写时间函数导出到Excel是正常的,但是通过spread4toJSON() 导出就是这样了

出现8/2/2017的原因应该是设置格式formatter,formatter默认是自动的,会根据您传入的内容自动进行判断。
看到您底下还有一个2017/8/2 11:00这个单元格应该是设置过formatter格式的。导出时会按照您真实值来导出,不会按照formatter来导出。另外,您给个重现问题的demo吧,不然我们没办法具体确定您的问题,导致沟通进展缓慢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部