找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

141

主题

261

帖子

1682

积分

超级版主

Rank: 8Rank: 8

积分
1682
Winny
超级版主   /  发表于:2023-3-7 18:50  /   查看:1799  /  回复:0
本帖最后由 Winny 于 2023-3-7 18:51 编辑

业务场景: 对于部分内容,用户需要切换checkbox来实现单元格格式化的切换,例如对于部分数据,在特定场景下,希望切换到百分比格式,用百分比的形式展现。

本文会从UI及代码层面讲解该需求的实现方式。
(1)UI层面
添加复选框,控制是否切换格式。在SpreadJS在线表格设计器中选择开始-单元格类型-复选框,给当前sheet页添加复选按钮。
image.png187951048.png
选中之后,在弹出的界面中,添加如下信息:
image.png283573302.png
如上所示,选定状态文字不填写时,默认会以布尔值对复选框单元格的值做标记,标替用于提示复选框选中时的作用。操作完成之后,复选框的设置就已经完成了。接下来,需要对目标数据添加条件格式。
1.gif392549437.png
通过上边的几步操作之后,就已经实现切换格式的需求了。这里,格式化可以根据自己的需求去做调整,也可以采用自定义格式化内容。

(2) 代码实现
代码实现与UI实现原理相同,我们需要使用的核心API为添加复选框条件格式相关的。使用如下代码,即可实现与UI层面相同的效果。
  1. let textAlignCellType = new GC.Spread.Sheets.CellTypes.CheckBox();
  2.     textAlignCellType.isThreeState(false);
  3.     textAlignCellType.caption("百分比展示");
  4.     textAlignCellType.textAlign(GC.Spread.Sheets.CellTypes.CheckBoxTextAlign.right);
  5.     sheet.setCellType(4, 5, textAlignCellType);
  6. let style = new GC.Spread.Sheets.Style()
  7. style.formatter = '0.00%'
  8. sheet.conditionalFormats.addFormulaRule("=Sheet2!$F$5=TRUE",style,[new GC.Spread.Sheets.Range(5,0,10,6)])
复制代码
参考学习指南和api文档,可以很容易理解上边的代码,这样设置完成后,即可以实现对特定区域应用格式切换。


0 个回复

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