找回密码
 立即注册

QQ登录

只需一步,快速开始

爱迪生

超级版主

55

主题

65

帖子

1400

积分

超级版主

Rank: 8Rank: 8

积分
1400
爱迪生
超级版主   /  发表于:2022-6-9 09:11  /   查看:2141  /  回复:0
本帖最后由 爱迪生 于 2022-6-16 11:36 编辑

SpreadJS V15.1添加“.”运算符从左值获取属性,它可以是PROPERTY函数的简化,关于PROPERTY函数参考:https://demo.grapecity.com.cn/sp ... perty-function.html
一.详细信息:
1."." 运算符左值是一个对象。
例如:
用法
例子
常规
=A1.name
范围(溢出)
=A1:A10.name

=E1#.name
间接引用
=INDIRECT("A1").aaa
自定义名称
=abcd.name
在格式化字符串中使用
=@.name
对象中的对象
=A1.address.city
在 LET 和 LAMBDA
=LAMBDA(temp,temp.city)
2."."运算符右值是对象的字段。
如果包含空白,可以在字段名称周围用"括起
用法
例子
使用"和Esc键
=A1."""abc"""  (equals =PROPERTY(A1, """abc"""))
使用 "
=A1."first name"
常规
=A1.name
二.策略:
1.优先级:如果spread中包含自定义名称“A1.name”,则“=A1.name”将被识别为自定义名称,而不是"." 运算符(但是"!"运算符优先级高于"." )
2."." 运算符区分大小写,与属性函数相同。
3.ExcelIO:在xml中,存储为"."(Excel 2019/GoogleSheets将显示公式的语法错误,如: =A1:A10.name    =INDIRECT("A1").aaa    =A1.[first name])(由于Excel不支持对象类型,对象值无法正常导出。)

三.与Excel不同点:
SpreadJS"."运算符适用于左边的值是JSON对象。与Excel引用数据类型完全不同

SpreadJS "." 运算符
Excel引用数据类型


从JSON对象获取字段值
(可以在没有allowDynamicArray的情况下工作)
仅适用于链接数据类型(SJS不支持此链接数据类型)

(仅在 Office 365 中)
不显示字段列表



(原因是SpreadJS CE不传输引用单元格格式化程序)
输入“=A2”时显示字段列表下拉列表。



支持=A1.address.city
不支持对象中的对象。
四.参考代码与示例:

1.参考代码:
  1. spread = new spreadNS.Workbook(document.getElementById("ss"), { sheetCount: 2, tabStripRatio: 0.88 });
  2.             spread.options.allowDynamicArray = true;

  3.             var sheet = spread.getActiveSheet();
  4.             sheet.setValue(0, 0, {name:"john", age:20});
  5.             sheet.setValue(0, 1, {name:"kevin", age:30});
  6.             sheet.setValue(1, 0, {name:"mary", age:28});
  7.             sheet.setValue(1, 1, {name:"tom", age:25});


  8.             sheet.setValue(2, 0, 'A1.name');
  9.             sheet.setFormula(3, 0, '=A1.name');

  10.             sheet.setValue(2, 2, 'A1.age');
  11.             sheet.setFormula(3, 2, '=A1.age');

  12.             sheet.setValue(6, 0, 'TEXTJOIN("-",FALSE,A1.name,A1.age)');
  13.             sheet.setFormula(7, 0, '=TEXTJOIN("-",FALSE,A1.name,A1.age)');

  14.             sheet.setFormula(0, 4, '=A1:B2');

  15.             sheet.setValue(11, 0, 'A1:B2.name');
  16.             sheet.setValue(11, 4, 'E1#.name');
  17.             sheet.setFormula(12, 0, '=A1:B2.name');
  18.             sheet.setFormula(12, 4, '=E1#.name');
复制代码

2.SpreadJS页面显示:
image.png697030028.png













0 个回复

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