找回密码
 立即注册

QQ登录

只需一步,快速开始

王祖贤-本人

注册会员

8

主题

18

帖子

54

积分

注册会员

积分
54
王祖贤-本人
注册会员   /  发表于:2023-4-24 11:02  /   查看:2334  /  回复:3
本帖最后由 Lynn.Dou 于 2023-12-13 14:43 编辑

问题编号:SJS-18039
LastReview:2023/12/13
此问题属于产品设计,提供了解决方案


输入日期格式 2006年12月12日,单元格显示 2006年12月,将当前单元格复制到其他表格内,显示的是2006年12月-2006/12/1


截屏2023-04-24 上午11.01.01.png
截屏2023-04-24 上午10.59.05.png

3 个回复

倒序浏览
王祖贤-本人
注册会员   /  发表于:2023-4-24 17:13:36
沙发
"@grapecity/spread-excelio": "^16.0.5",
    "@grapecity/spread-sheets": "^16.0.5",
    "@grapecity/spread-sheets-barcode": "^16.0.5",
    "@grapecity/spread-sheets-charts": "^16.0.5",
    "@grapecity/spread-sheets-designer": "^16.0.5",
    "@grapecity/spread-sheets-languagepackages": "^16.0.5",
    "@grapecity/spread-sheets-pdf": "^16.0.5",
    "@grapecity/spread-sheets-print": "^16.0.5",
    "@grapecity/spread-sheets-resources-zh": "^16.0.5",
    "@grapecity/spread-sheets-shapes": "^16.0.5",
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-24 17:50:58
板凳
您好,
问题已复现,已将此问题记录下来进一步调研原因,待有进展贴中通知您。
本贴先做保留处理。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-13 14:42:37
地板
更新进展:
经调研,该问题涉及的情况比较复杂,详情如下:

情况1:在designer中B2单元格输入 “2006年12月12日”,此时单元格显示为“2006年12月”,而不是“2006年12月12日”,与Excel不一致。
这与SpreadJS自动格式化策略有关,它不像Excel那么智能,目前的格式化策略会表现为“yyyy年M月”形式。
如果想与Excel表现一致,您可以使用以下代码:
  1. GC.Spread.Common.CultureManager.culture("zh-cn");
  2. GC.Spread.Common.CultureManager.getCultureInfo().DateTimeFormat.preselectedFormatters = ['yyyy年M月d日'];
复制代码


情况2:选择B2单元格,按下ctrl+c复制,然后打开新的designer,按下ctrl+v粘贴至C2单元格。


“选择B2单元格,按下ctrl+c复制”
此时带有单元格样式(此处单元格样式中没有格式化程序)的RTF内容 “2006年12月12日” 将被复制到系统剪贴板中
打开新的designer,按下ctrl+v粘贴至C2单元格
在将 RTF 内容粘贴到单元格中时,它会先将“2006年12月12日”解析为日期,然后将该日期应用于 C2 值。之后将 HTML 样式解析为 SpreadJS样式,然后将该样式应用到 C2 样式。由于HTML样式不包含任何格式化程序,因此,自动格式化程序在这里不会生效,单元格值将显示“2006/12/12”


所以如果想保持文本的一致,可以设置以下代码:
  1. spread.options.allowCopyPasteExcelStyle = false
复制代码
综上,此问题属于产品设计,您可以参考上述方案实现您的需求。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部