找回密码
 立即注册

QQ登录

只需一步,快速开始

KevinChen 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-3-3 14:34  /   查看:2733  /  回复:0
背景:WPS有一个比较实用的功能,就是在用户选中某个单元格或区域时,所涉及的行、列都会高亮(改变背景色)。

本例采用自定义单元格实现了这个功能,核心代码如下(完整示例见附件):

  1. // 重写paint方法
  2.     CustomBase.prototype.paint = function (context, value, x1, y1, a1, b1, style, ctx) {
  3.         if (!context) {
  4.             return;
  5.         }
  6.         if(this.showEffect){
  7.             if(sels && sels.length !== 0){
  8.                 var row = ctx.row, col = ctx.col;
  9.                 sels.forEach(function (sel) {
  10.                     // 设置当前绘制样式,不会影响导出效果
  11.                     var rowSpan = sel.row + sel.rowCount;
  12.                     var colSpan = sel.col + sel.colCount;
  13.                     if(row >= sel.row && row < rowSpan
  14.                         || col >= sel.col && col < colSpan){
  15.                         style.backColor = "red";
  16.                     }
  17.                 })
  18.             }
  19.         }
  20.         oldPaint.apply(this, [context, value, x1, y1, a1, b1, style, ctx]);
  21.     };
复制代码


自定义单元格_高亮选中的行、列.html

2.41 KB, 下载次数: 59

0 个回复

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