中国式报表Pro模版说明
1.名词定义
名词 | 说明 |
模板单元格 | 可以通过右键设置或存在一对双花括号的单元格{{}}会被自动识别为模板单元格,模板单元格双击支持配置模板属性,模板单元格代表了该单元格里面包含模板字段,模板属性,是可以根据配置的属性规则进行扩展的单元格。 |
模板字段 | 模板字段分为数据字段、函数字段、表达式字段、工作表字段,数据字段可将视图中的字段拖至编辑区,形成可扩展的数据;函数字段是用一对花括号将excel函数包装起来,支持函数中引用数据字段;表达式字段是指用一对花括号将表达式包装起来;工作表字段用于工作表名称绑定。 |
模板属性 | CSGE等均为模板属性,用来定义模版扩展的方向,排序,分组,父格等。 |
自定义函数 | G_TEXT()转换字符串函数。 |
2.模板单元格
模板单元格代表了该单元格里面包含模板字段,模板属性,是可以根据配置的属性规则进行扩展的单元格;
而普通单元格只能承载静态数据,和excel单元格用法无差。
3.模版字段
模板布局可以包含各种数据绑定的字段,这些字段的数据绑定到视图。下图显示了不同的模板字段:函数字段。
数据字段是由数据源中的数据填充的绑定字段。可以按照以下示例中所示的不同方式定义这些字段:
数据字段数据绑定字段定义为:{{ds.FieldName}},其中ds是数据源的别名。例如,{{ds.grade}}
函数字段用于在报告中执行计算。有两种形式
形式1:{{=函数()}}可以将函数应用于单元格或数据字段。支持的标准Excel函数为 Sum, Count, Average, Max, Min, Product, StdDev, StdDevp, Var and Varp. For example:
{{=SUM(F4)}}
{{=SUM(team.score)}}
{{=Count(student.name)}}
注意:{{=}}类函数字段仅支持一个参数,支持引用数据字段
函数字段也可以根据上下文进行计算。例如,在下面的图像单元格D14中包含函数字段以及上下文属性。将首先通过对单元格C14中的收入求和,然后对整个类别的值求和(因为A14是其上下文)来计算结果值
形式2:{{==函数()}},可支持excel中大多数函数公式,不区分参数个数,但仅支持参数引用单元格{{==VLOOKUP(F4,A1:G7,2,false)}}
表达式字段可用于使用运算符'+','-','*','/'和'()'执行计算。表达式可以应用于单元格或数据字段。例如:
{{= ds.count*ds.price}}
{{= ds.price + ds.tax}}
{{=A18*0.05}}
{{=A18+D18-G18}}
{{=(A18+ A20)*0.3}}
注意:表达式字段不支持模板属性。函数字段和表达式字段不能像{{= Sum(A5 + A6)}}或{{= Sum(A5)* 0.01}}那样一起使用,不支持。
推荐用法
工作表字段GcExcel支持在工作表名称中使用绑定字段,这意味着工作表名称的字段值由数据源中的数据填充,并创建了多个工作表。每个工作表都包含与其值相对应的数据。
例如,如果我们将{{dt.Region}}指定为工作表名称,并且数据源包含5个区域的数据,则最终报告将包含5个工作表,而单个工作表将包含特定区域的数据。
4.模版属性
模板属性与圆括号 () 中的模板字段一起定义,如下图所示:
当被识别为模板单元格时,支持双击模板单元格,打开模板属性配置窗口,进行可视化配置,也支持手写。
4.1 扩展E
垂直扩展
如果单元格的expansion属性设置为vertical,即“E=V”,则单元格值将垂直展开,如下所示。默认展开设置为垂直,这意味着如果未在单元格中指定任何展开属性,则单元格值将垂直展开。
水平扩展
如果单元格的expansion属性设置为horizontal,即“E=H”,则单元格值将水平展开,如下所示:
4.2 设置父格C
在模板布局中定义绑定到数据源的多个字段时,它们之间会建立一种关系,称为上下文关系(简称父子关系)。前一个单元称为后一个单元的上下文单元。根据此关系,在最终报告中展开时,将对数据进行筛选或分组。有两种类型的上下文关系。
- 过滤关系: 使用上下文单元格的数据作为过滤条件来过滤单元格中的数据。例如,在下图中,name单元格中的数据将根据其上下文单元格中的数据进行过滤:
- 跟随关系: 单元格中的数据根据上下文单元格中数据的扩展方向进行分组。例如,在下图中,name单元格中的数据根据其上下文单元格进行分组和水平展开:
上下文单元格的使用“C”属性定义。单元格中的数据根据上下文垂直或水平扩展。可以通过以下方式设置单元格的上下文:
-
注意:无单元格上下文(C= None)
-
自定义:使用“C”属性显式指定单元格上下文
- 默认值:如果单元格中未定义上下文,则默认上下文单元格是左侧的相邻单元格,E=V(垂直展开),或顶部的相邻单元格,E=H(水平展开)例如,在下图中,A1是B1的上下文单元格,并垂直展开。
而且,A1是A2的上下文单元格,并水平展开。
最多支持配置两个父格来约束一个单元格扩展的跟随行为
上下文优先级
上下文应适用于单元格的优先级顺序按以下顺序确定:
显式上下文 > 默认上下文 > 回退上下文
-
显式上下文:由单元格本身的C属性定义的上下文
-
默认上下文:如果单元格中未定义上下文,则默认上下文具有优先级
-
回退上下文:如果左侧或顶部没有相邻单元格值,则该单元格将查找具有覆盖其位置的R(Range)属性的单元格,并将其用作上下文。
如果未定义默认或显式上下文,则可以使用Range属性在单元格中定义回退上下文。定义范围的单元格将作为其他单元格展开的上下文。
例如,创建下面的模板布局是为了显示不同相机型号的销售详细信息,这意味着数据需要扩展到相机型号。然后,需要显示另一款相机的销售详情。我们可以为摄影机模型定义范围R=B11:F16,而不是为每个字段添加上下文-{{ds.Name(R=B11:F16)},说明销售细节需要根据相机型号进行扩展和分组。
上述模板布局将生成以下Excel报表:
4.3 分组G(Group)
group属性允许您将模板中的数据分组。
值:枚举
G=Normal(归类不重复): 对于列中的相应记录,不重复分组依据字段的值;而是每个数据组打印一次。
G=Merge(归类合并)(默认值): 行为与常规参数相同,不同之处在于它会合并每个组集的按字段分组的单元格。
G=Repeat(归类重复): 对相应的记录重复分组依据字段的值。
G=List(原始分组): 字段值针对相应的记录独立列出。
注意:归类合并排序方式较为消耗性能,不建议大数据量情况下使用
示例
{{ds.field(G=repeat)}}
{{ds.field(G=list)}}
下图显示了如何对重复数据应用“merge”分组:
4.4 排序S(Sort)
sort属性指定模板中的排序类型。
值:枚举
S=Asc升序
S=Desc: 降序
S=None(默认值):不排序
模板属性排序优先级>数据准备阶段排序。当模板属性中为不排序时,数据准备阶段排序生效。
示例
{{ds.field(S=Desc)}}
下图显示了如何根据模板字段的排序类型对其进行扩展:
4.5 范围R(Range)
range属性为指定范围内的字段指定回退上下文。范围中涵盖的所有字段(既没有默认值也没有明确的上下文)将定义该范围的当前单元格用作上下文。
值:Cell range
默认值: Null
示例
{{ds.field(R= B3:F10)}}
下图显示了为学生姓名定义的范围,并指定了有关学生姓名的详细信息并将其分组:
4.6 分页计数 CP
开启分页:
默认分页模式为按纸张大小分页,当前值A3纸张;开启分页功能后,可以在想要计数分页的单元格上,右击配置计数。
如CP=10,则根据该单元格扩展出的数据,每10个进行一次分页。
4.7 额外添加行列数 FM
默认值为带格式额外添加行列数(插入单元格,如需插入行需配置中国式报表全局参数)。
支持修改为覆盖写入或者保留格式覆盖写入。
5.自定义函数
函数:G_TEXT
在试用excel函数image()时,需要参数为string类型,=IMAGE("https://support.content.office.net/en-us/media/35aecc53-b3c1-4895-8a7d-554716941806.jpg","column")
该函数用于将其他类型的字段值转为字符串类型
例如:=IMAGE(G_TEXT(ds.url))
图片和超链接会自动生成对应函数,您只需在数据准备时将相关维度设置显示为图片/超链接