找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

123

主题

8927

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13532

讲师达人悬赏达人元老葡萄SpreadJS 认证SpreadJS 高级认证微信认证勋章

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-30 15:42  /   查看:1515  /  回复:0
在SpreadJS中默认采用了OADate的格式存储时间,在数据绑定时可以获取到OADate 字符串形式的时间
如果希望获取string或者时间戳形式的日期类型可以通过一下方式实现

在数据绑定的columnInfo对象上,可以提供一个value方法来处理绑定字段。
arguments.为2个时,表示编辑数据后写入dataSource,将OADate格式的value转为Date类型再获取时间戳
arguments数量为1时,表格从dataSource取数据展示,我们讲时间戳转为Date类型返回,SpreadJS就可以在format后显示在单元格中了

  1. var sheet = spread.getSheet(0);
  2. sheet.autoGenerateColumns = false;
  3. var colInfos = [
  4.                 { name: "id", displayName: "ID" },
  5.                 { name: "name", displayName: "Name", size: 100 },
  6.                 { name: "date", displayName: "Date", size: 80, formatter: "yyyy/mm/dd", value: function(item, value){
  7.                     if(arguments.length == 2){
  8.                         sheet.tag(value)
  9.                         let tempDate = sheet.tag();
  10.                         console.log(tempDate)
  11.                         if(tempDate instanceof Date){
  12.                             item.date = tempDate.getTime();
  13.                         }
  14.                         else{
  15.                             item.date = value;
  16.                         }
  17.                     }
  18.                     else{
  19.                         if(item.date && item.date > 631123200000){
  20.                             return new Date(item.date);
  21.                         }
  22.                         else{
  23.                             return item.date;
  24.                         }
  25.                     }
  26.                 } },
  27.                 { name: "date", displayName: "DateValue", size: 80 }
  28. ];
  29. sheet.bindColumns(colInfos);
  30. sheet.setDataSource([{id:1, date:1817740800000},{},{}])
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部