找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-7 12:25  /   查看:975  /  回复:0
通过在表格编辑器,我们可以很方便的给透视表的某个单元格设置样式,
以下图为例,如果要给透视表中的B4单元格设置背景色,选中单元格后,可以直接通过上放的工具设置背景色即可


image.png639837951.png



但是如果需要通过代码操作的话,情况可能和我们给普通单元格设置背景色稍有不同

对于普通单元格来说,我们可以通过下面的代码就可以设置
  1. var style = new GC.Spread.Sheets.Style();
  2. style.backColor = 'red';
  3. sheet.setStyle(4 1, style);
复制代码


但是对于数据透视表来说,通过上述方式给数据透视表设置某个单元格的样式,并不是正确的方式,可能会出现设置无效。
原因是透视表本身是一个动态的表格。我们实际需要的是给 B4单元格所对应的统计项设置样式:即统计salesperson=Alan和car=Audi这个统计项
我们需要先把B4单元格转换为数据透视表区域
  1. var ptranges=sheet.pivotTables.getRangePivotAreas(new GC.Spread.Sheets.Range(4,1,1,1))
复制代码
转换后的ptranges信息如下
  1. {
  2.     "PivotTable1": [
  3.         {
  4.             "references": [
  5.                 {
  6.                     "fieldName": "salesperson",
  7.                     "items": [
  8.                         "Alan"
  9.                     ]
  10.                 },
  11.                 {
  12.                     "fieldName": "car",
  13.                     "items": [
  14.                         "Audi"
  15.                     ]
  16.                 }
  17.             ]
  18.         }
  19.     ]
  20. }
复制代码


可以看到其中包含了数据透视表PivotTable1中的一组透视表区域,通过下面的代码设置透视表样式
  1. var style = new GC.Spread.Sheets.Style();
  2. style.backColor = 'red';

  3. pt.setStyle(ptranges["PivotTable1"][0],style )
复制代码
上述代码中ptranges["PivotTable1"][0]即为对应的B4单元格
最后的设置效果
image.png387352904.png


0 个回复

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