【SpreadJS V15.1 新特性介绍】 公式函数中使用”.“操作符引用对象中的属性
本帖最后由 爱迪生 于 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.)(由于Excel不支持对象类型,对象值无法正常导出。)
三.与Excel不同点:
SpreadJS"."运算符适用于左边的值是JSON对象。与Excel引用数据类型完全不同
SpreadJS "." 运算符
Excel引用数据类型
从JSON对象获取字段值
(可以在没有allowDynamicArray的情况下工作)仅适用于链接数据类型(SJS不支持此链接数据类型)
(仅在 Office 365 中)
不显示字段列表
(原因是SpreadJS CE不传输引用单元格格式化程序)
输入“=A2”时显示字段列表下拉列表。
https://support.content.office.net/en-us/media/7b20e3e8-b5b7-4734-9745-588fa174d38f.png
支持=A1.address.city不支持对象中的对象。
四.参考代码与示例:
1.参考代码:
spread = new spreadNS.Workbook(document.getElementById("ss"), { sheetCount: 2, tabStripRatio: 0.88 });
spread.options.allowDynamicArray = true;
var sheet = spread.getActiveSheet();
sheet.setValue(0, 0, {name:"john", age:20});
sheet.setValue(0, 1, {name:"kevin", age:30});
sheet.setValue(1, 0, {name:"mary", age:28});
sheet.setValue(1, 1, {name:"tom", age:25});
sheet.setValue(2, 0, 'A1.name');
sheet.setFormula(3, 0, '=A1.name');
sheet.setValue(2, 2, 'A1.age');
sheet.setFormula(3, 2, '=A1.age');
sheet.setValue(6, 0, 'TEXTJOIN("-",FALSE,A1.name,A1.age)');
sheet.setFormula(7, 0, '=TEXTJOIN("-",FALSE,A1.name,A1.age)');
sheet.setFormula(0, 4, '=A1:B2');
sheet.setValue(11, 0, 'A1:B2.name');
sheet.setValue(11, 4, 'E1#.name');
sheet.setFormula(12, 0, '=A1:B2.name');
sheet.setFormula(12, 4, '=E1#.name');
2.SpreadJS页面显示:
页:
[1]