找回密码
 立即注册

QQ登录

只需一步,快速开始

易Hr

初级会员

21

主题

87

帖子

258

积分

初级会员

积分
258
易Hr
初级会员   /  发表于:2021-4-29 10:26  /   查看:2334  /  回复:9
1金币
image.png283271178.png
Excel中的是日期
image.png440164184.png
gcexcel getValue 获取的是String的字符串 并非Date

附件 中是使用的excel

员工.rar

8.67 KB, 下载次数: 45

9 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-29 10:56:09
沙发
因为这个单元格的实际值就是一个字符串,无论是GcExcel还是SpreadJS getValue拿到的都是单元格的真实值。
image.png470739135.png

只有像这种的才是一个日期
image.png507356566.png
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-4-29 11:00:00
板凳
本帖最后由 易Hr 于 2021-4-29 11:02 编辑
DerrickJiao 发表于 2021-4-29 10:56
因为这个单元格的实际值就是一个字符串,无论是GcExcel还是SpreadJS getValue拿到的都是单元格的真实值。
...

但是在excel中显示的就是个日期啊。。 无论怎么输入 是否应该 更改了类型 就应该变成对应的类型吧。
退一步讲这个东西我怎么才能变成一个日期?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-29 11:33:57
地板
易Hr 发表于 2021-4-29 11:00
但是在excel中显示的就是个日期啊。。 无论怎么输入 是否应该 更改了类型 就应该变成对应的类型吧。
退 ...

在Excel中,他的值是个字符串,显示日期,那是因为这个是他的格式。最简单直白来说,单元格靠左显示,他就是一个字符串,正常的一个日期应该靠右显示,这样拿出来的value才是一个日期。

无论是SpreadJS还是GcExcel,您导入的是什么值他拿到的就是什么值。没有对应的API,这个您需要查找相关方法通过前端或者后端去进行转换。

再或者说您在单元格输入的时候,直接输入一个日期而不是这样的字符串,这样getValue就是日期了。
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-4-29 11:42:40
5#
本帖最后由 易Hr 于 2021-4-29 11:45 编辑
DerrickJiao 发表于 2021-4-29 11:33
在Excel中,他的值是个字符串,显示日期,那是因为这个是他的格式。最简单直白来说,单元格靠左显示,他 ...

那有方法能够获取到对应的格式么,就是到底是个日期、时间、字符串或者说小数等等。或者说我就是想获取Excel中 image.png327109374.png 这里 对应的格式类型怎么获取? 还有就是有对应的的类型我如何通过gc赋予相同的类型?
我说的不是getvalue 获取的那个值。就是单纯的类型对照。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-29 11:57:50
6#
易Hr 发表于 2021-4-29 11:42
那有方法能够获取到对应的格式么,就是到底是个日期、时间、字符串或者说小数等等。或者说我就是想获取Ex ...

这边需要跟您明确一点,格式是将值展示为对应的内容。要想获取单元格格式可以用getNumberFormat。
image.png849904785.png

您描述的判断单元格的值的类型以及单元格类型的转换这个都不是GcExcel的功能。您可以查找java类似的方法。通过getValue拿到的数据用下面类似的方法去判断。
1.判断是否为double型object instanceof Double
2.判断是否是int型object instanceof Interger
3.判断是否是String型object instanceof String


对于数据的值转换,建议您查找java相关的方法。

另外,在Excel上面的这个是单元格的格式不是数据的类型,要想获取格式就用getNumberFormat。
image.png398259581.png

回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-4-29 12:28:25
7#
DerrickJiao 发表于 2021-4-29 11:57
这边需要跟您明确一点,格式是将值展示为对应的内容。要想获取单元格格式可以用getNumberFormat。

numberformat这个方法在之前问的一个问题中,提到过。但是这个东西set的时候对文本无效。
而且这个东西并没有对应的解释来说其中的值哪种是字符串、哪种是文本、哪种是数字。
你上述说的instanceof方法 我知道。但是取出来的是文本。但是显示在excel中的是日期。
如果入库后是字符串,当我再次取出时 再给他设置同样的numberformat
生成的excel中是否显示的是日期
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-29 13:39:34
8#
易Hr 发表于 2021-4-29 12:28
numberformat这个方法在之前问的一个问题中,提到过。但是这个东西set的时候对文本无效。
而且这个东西并 ...

字符串、文本、数字,这些GCExcel都不会进行处理。上个帖子也跟您解释过了,设置的日期他是一个格式,不是他的值,也不会影响他的真实值。他的真实值是个字符串他就字符串,他的真实值是一个数值他就是数值。设置格式只是影响他的显示。

建议您不要纠结值和格式,之前那个问题已经和您解释了。两者是不一样的,Excel上面的那个是个格式,并不是他的真实值。对于字符串、文本还是数字,您只能通过java去转换去判断,GcExcel没有更好的方法能够处理这些类型的转换。
回复 使用道具 举报
易Hr
初级会员   /  发表于:2021-4-29 18:46:06
9#
DerrickJiao 发表于 2021-4-29 13:39
字符串、文本、数字,这些GCExcel都不会进行处理。上个帖子也跟您解释过了,设置的日期他是一个格式,不 ...

并不是要转换。。我意思是有没有对应的类型 或者 类型的定义。因为GcExcel 没有相应的方法告知或者获取。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-30 09:17:17
10#
易Hr 发表于 2021-4-29 18:46
并不是要转换。。我意思是有没有对应的类型 或者 类型的定义。因为GcExcel 没有相应的方法告知或者获取。

目前来说GcExcel确实没有这样的一种接口,只能通过getValue拿到这样一种数据,具体如何判断只能通过java语言去判断。这边也会跟研发做一下交流,看下后续是否会实现。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部