找回密码
 立即注册

QQ登录

只需一步,快速开始

18889186136

初级会员

12

主题

30

帖子

340

积分

初级会员

积分
340

活字格认证

18889186136
初级会员   /  发表于:2014-12-12 14:35  /   查看:11820  /  回复:13
我本地的excel中是格式是2013/5/14;
可是我复制过来到这个wijspread中就变成了05/14/2013;
我想要复制过去后变成2013-05-14,如果做?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

13 个回复

倒序浏览
marysu
银牌会员   /  发表于:2014-12-12 16:39:00
沙发
需要在SpreadJS中设置 单元格格式为:2013/5/14
回复 使用道具 举报
gw0506
超级版主   /  发表于:2014-12-12 16:53:00
板凳
这个原因是,Excel应该是中文版,默认的Format和SpreadJS不同。SpreadJS默认是英文版Culture的Format。
你可以在RangeChanged事件中获得单元格,然后设置SetFormat为  “yyyy-mm-dd”即可。
回复 使用道具 举报
18889186136
初级会员   /  发表于:2014-12-15 09:30:00
地板
回复 3楼gw0506的帖子

能否不用RangeChanged方法?这个方法应该是每次改动都回触发,这样效率就低了。
有没有修改默认属性?
如何设置呢?
var spread = $("#spreadContainerEdit").wijspread("spread");
var activeSheet = spread.getActiveSheet();
=======有没有类似以下的方式?=====================
activeSheet.setDefaultStyle()
============================
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-15 14:19:00
5#
回复 4楼18889186136的帖子

如下JS代码展示了如何在单元格设置日期格式:
  1. var f = new $.wijmo.wijspread.GeneralFormatter("ggg ee/MM/dd dddd",null,"ja-jp");
  2. activeSheet.getCell(1,1).formatter(f);
  3. activeSheet.getCell(1,1).value(new Date(2014,00,20));
  4. // Or
  5. $.wijmo.wijspread.Culture("ja-jp");
  6. activeSheet.getCell(1,1).formatter("ggg ee/MM/dd dddd");
  7. activeSheet.getCell(1,1).value(new Date(2014,00,20));
  8. //Or
  9. activeSheet.getCell(1,1).formatter("[$-411]ggg ee/MM/dd dddd");
  10. activeSheet.getCell(1,1).value(new Date(2014,00,20));
复制代码


以上代码是用日文举例的,SpreadJs的Culture可以参考文档:
http://helpcentral.componentone.com/NetHelp/SpreadHClientUG/webframe.html#culturecustom.html
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
18889186136
初级会员   /  发表于:2014-12-16 09:19:00
6#
回复 5楼Alice的帖子

不知道是我没理解你们的意思,还是你们没理解我的意思。。。
如果我手动输入2010-10-10,选中默认会变成10/10/2010.
我想要的结果是输入什么就是什么了。
这样问:能不能设置成文本格式。是把所有行和列,不需要针对某行某列。默认输入什么就是什么?需要代码
回复 使用道具 举报
18889186136
初级会员   /  发表于:2014-12-16 10:06:00
7#
activeSheet.setFormatter(1,0,"yyyy/MM/dd");
这样就可以了。关键是我不确定这个行和列,我想整个都把格式统一设定怎么办?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-16 11:48:00
8#
回复 7楼18889186136的帖子

对整个sheet设置Formatter是不推荐的。
我在5楼贴的链接里有如何利用自定义Culture来实现你的需求,推荐通过Culture的方式来实现。
代码参考:
  1. var ci = $.wijmo.wijspread.getCultureInfo($.wijmo.wijspread.Culture());
  2. ci.shortDatePattern = "yyyy-mm-dd";
  3. $.wijmo.wijspread.addCultureInfo("customCulture",ci);
  4. $.wijmo.wijspread.Culture("customCulture");
复制代码


5楼发的相关文档再贴一遍:
http://helpcentral.componentone. ... #culturecustom.html
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
18889186136
初级会员   /  发表于:2014-12-16 13:57:00
9#
回复 8楼Alice的帖子

问题 1: 有没有属性能控制,输入什么内容就显示什么内容?而且是以字符串的形式?
如我输入2010-10-10就是2010-10-10,是字符串的形式,而不是自动转成date形式?
问题2:发现默认情况下2010-10-10 形成的json串是"/OADate(40188)/"
          这样如何能转换成js 的date类型呢?不然无法入库呀
谢谢版主
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-16 17:30:00
10#
回复 9楼18889186136的帖子

1.可以使用“@”,单元格会使用Text类型的格式。
activeSheet.getCell(0, 1).formatter("@");

对整个sheet设置参考8楼的代码。

2.这是可以自己写代码进行转换的,将里面的数字提取出来,然后转换成Date类型,参考:
  1. //转换json格式的日期(如:{ServerDatetime:"/Date(1278930470649)/"})为Javascript的日期对象
  2. function ConvertJSONDateToJSDate(jsondate) {
  3.     var date = new Date(parseInt(jsondate.replace("/Date(", "").replace(")/", ""), 10));
  4.     return date;
  5. }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部