找回密码
 立即注册

QQ登录

只需一步,快速开始

注册会员

11

主题

20

帖子

67

积分

注册会员

积分
67

注册会员   /  发表于:2022-2-8 15:59  /   查看:1591  /  回复:6
本帖最后由 Lynn.Dou 于 2022-2-11 17:32 编辑

如何将20210101字符串设置到一个单元格中(此单元格具有自定义的单元格格式:yyyymmdd),经实验无论是通过setValue还是setText均无法将此值正常的放入单元格中,放入后单元格的内容显示的值为57233051,通过getValue拿到的值为“Mon May 16 57233 00:00:00 GMT+0800 (中国标准时间),目前猜测是内部的处理函数GC.Spread.Formatter.GeneralFormatter将此值在内部转换成数字进行处理了(因为经过实验将此单元格的格式调整为:yyyy-mm-dd,然后将2021-01-01通过调用setText可以正常将此值进行设置,并且通过getValue可以将一个[size=15.0667px]正确的日期格式的字符串取出)


6 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-11 17:31:52
推荐
在SJS内部,会将日期字符串转换为日与日期相关的 OADate 数字,然后格式化日期。
而'20210101'并不是一个标准的日期格式,而是一个数字(字符串),
所以直接进行赋值并设置日期格式时,会显示为数字。

根据您的需求,建议您参考下方代码设置:
  1. sheet.setValue(1, 1, new Date('2021-1-1'))
  2. sheet.setFormatter(1, 1, 'yyyymmdd')
  3. sheet.getText(1, 1)
  4. sheet.getValue(1, 1)
复制代码


575091c5a99a1434f5bf177a65a908d.png162874755.png

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-8 18:16:09
沙发
您好,
这边使用官网在线表格编辑器(V14.2.5)测试,
"放入后单元格的内容显示的值为57233051"
描述的这个问题已复现。
通过getValue拿到的值为“Mon May 16 57233 00:00:00 GMT+0800 (中国标准时间)
这个问题没有复现,这边测试通过getValue拿到的仍是字符串 '20210101'
image.png860177001.png
您可以在上述地址实际测试下。

综上,您的需求是什么呢?请结合前面测试结果详细的描述下,以便后续进一步调研。
回复 使用道具 举报

注册会员   /  发表于:2022-2-9 09:48:45
板凳
Lynn.Dou 发表于 2022-2-8 18:16
您好,
这边使用官网在线表格编辑器(V14.2.5)测试,
"放入后单元格的内容显示的值为57233051"

我的需求是这样的:既然单元格上已经设置了格式yyyymmdd,那么我通过setValue("20210101")或者通过setText("20210101"),那么我最终在单元格上人眼看到的结果应该是20210101,并且通过getValue获取到一个“Mon May 16 2021 00:00:00 GMT+0800 (中国标准时间)”的数据,通过getText获取到一个20210101的数据
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-9 14:47:17
地板
本帖最后由 Lynn.Dou 于 2022-2-11 17:32 编辑

SJS对于日期这块的规则是这样的,在单元格直接输入日期形式数据时,会自动格式化为日期,此时获取的value为(中国标准时间)Date类型。
如果是通过接口如setValue赋值,则getValue获取的值就是所赋的值。
image.png124021605.png
您反馈的其他问题,如为什么单元格会显示为数字,以及getText相关内容,需要进一步调研下, 有进展会在贴中更新。
本贴先做保留处理。(SJS-11834)
回复 使用道具 举报

注册会员   /  发表于:2022-2-11 17:33:41
6#
感谢,此问题已解决
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-11 17:56:15
7#
问题解决了就好,那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部