背景:WPS有一个比较实用的功能,就是在用户选中某个单元格或区域时,所涉及的行、列都会高亮(改变背景色)。
本例采用自定义单元格实现了这个功能,核心代码如下(完整示例见附件):
- // 重写paint方法
- CustomBase.prototype.paint = function (context, value, x1, y1, a1, b1, style, ctx) {
- if (!context) {
- return;
- }
- if(this.showEffect){
- if(sels && sels.length !== 0){
- var row = ctx.row, col = ctx.col;
- sels.forEach(function (sel) {
- // 设置当前绘制样式,不会影响导出效果
- var rowSpan = sel.row + sel.rowCount;
- var colSpan = sel.col + sel.colCount;
- if(row >= sel.row && row < rowSpan
- || col >= sel.col && col < colSpan){
- style.backColor = "red";
- }
- })
- }
- }
- oldPaint.apply(this, [context, value, x1, y1, a1, b1, style, ctx]);
- };
复制代码
|
|