一、需求及效果图

最近的项目中,遇到给表格中指定单元格设置字体颜色,使用的是el-table做的,控制单元格字体颜色,每一行的最大值设置成绿色,最小值设置成红色,效果如下:

二、方法及代码

使用的是控件内的 cell-style 方法,方法详见element-ui,代码如下:

<!-- HTML代码 -->
<el-table:data="populationComparisonTableData"borderwidth= '952':cell-style="cellStyle"v-loading="tableLoading"style="width: 100%"><el-table-columnv-for="(item,index) in tableHeadArr":key="index":prop="item.prop":label="item.name":formatter="addPercent"height="40"align="center"></el-table-column>
</el-table>

方法一代:

// methods中写方法
cellStyle ({ row, column, rowIndex, columnIndex } ) {let arr = []; // 保存一行数据的数组for(let item in row) {if (item !== 'people_type') {arr.push(Number(row[item]));}}if (columnIndex - 1 === arr.indexOf(Math.max.apply(null, arr))) {// arr.indexOf(Math.max.apply(null, arr)能找到最大值的下标,// 与其对应列相等即返回绿色,//此处 columnIndex - 1 是因为第一列不是数字,arr中也不包含这部分return 'color: #138D39'; // 绿色,最大值}if (columnIndex - 1 === arr.indexOf(Math.min.apply(null, arr))) {return 'color: #FF3B4B';}
}

但是这么做有一个问题,就是如果最大值或者最小值,有重复的,就只能找到第一个最大(小)值,设置颜色,所以总感觉不太完美,于是咔咔咔的改进。

方法二代:

想到用两个数组分别保存最大值、最小值的下标,在遍历数组设置颜色即可,代码如下:

cellStyle ({ row, column, rowIndex, columnIndex } ) {let arr = []; // 保存一行数据的数组for(let item in row) {if (item !== 'people_type') {arr.push(Number(row[item]));}}let maxIndex = 0, minIndex = 0,minIndexArr = [],maxIndexArr = [];maxIndex = arr.indexOf(Math.max.apply(null, arr));minIndex = arr.indexOf(Math.min.apply(null, arr));arr.forEach((item, index) => {if (item === arr[minIndex]) {minIndexArr.push(index);}if (item === arr[maxIndex]) {maxIndexArr.push(index);}});if (minIndexArr.indexOf(columnIndex - 1) >= 0) {return 'color: #FF3B4B';}if (maxIndexArr.indexOf(columnIndex - 1) >= 0) {return 'color: #138D39';}
},

踩坑过程:

方法二代一开始我是这样写的:

cellStyle ({ row, column, rowIndex, columnIndex } ) {let arr = []; // 保存一行数据的数组for(let item in row) {if (item !== 'people_type') {arr.push(Number(row[item]));}}let maxIndex = 0, minIndex = 0,minIndexArr = [],maxIndexArr = [];maxIndex = arr.indexOf(Math.max.apply(null, arr));minIndex = arr.indexOf(Math.min.apply(null, arr));arr.forEach((item, index) => {if (item === arr[minIndex]) {minIndexArr.push(index);}if (item === arr[maxIndex]) {maxIndexArr.push(index);}});minIndexArr.forEach((item, index) => {if (item === minIndex) {return 'color: #FF3B4B'; // 这里根本设置不上颜色}});maxIndexArr.forEach((item, index) => {if (item === maxIndex) {return 'color: #138D39';}});
}

后来知道原因了,foreach里写return会直接跳过此次循环,执行下次循环,而这样写外部函数实际上是没有return的,所以颜色一直设置不上!!!希望大家以后不要踩坑了哦~~

如何给el-table表格的指定单元格设置颜色相关推荐

  1. html如何取单元格内容,JS获取表格内指定单元格html内容的方法

    JS获取表格内指定单元格html内容的方法 本文实例讲述了JS获取表格内指定单元格html内容的方法.分享给大家供大家参考.具体如下: 下面的代码先通过表格对象的rows获得指定的行的所有单元格数组, ...

  2. 【表格单元格可编辑】vue-elementul简单实现table表格点击单元格可编辑,点击单元格变成弹框修改数据

    前言 这是继我另一个帖子就是单元格点击变成输入框后添加的功能 因为考虑到有些时候修改单元格的信息可能点击后要修改很多,那一个输入框不好用 所以这时候就需要一个弹框可以把所有表单都显示出来修改 所以这里 ...

  3. 第2关:爬取表格中指定单元格的信息

    任务描述 行标签和单元格标签 find_all函数 获取标签文本 编程要求 任务描述 本关任务: 本关任务:根据上个步骤中爬取的表格标签,将表格中从第四行的单元格的文本显示出来 行标签和单元格标签 表 ...

  4. layui的table表格在同一单元格换行显示2个数据(layui-table)

    转自:https://blog.csdn.net/qq15577969/article/details/104109430 先看一下最终效果图: 查看全文 http://www.taodudu.cc/ ...

  5. 记录:element UI table 表格 固定列单元格上下错位

    一.表格添加ref <el-table ref="table"></el-table> 二.页面切换或数据更新时调用 this.$nextTick(() = ...

  6. 解决element UI table 表格 固定列单元格错位

    最近在使用表格组件的固定列后,才发现表格有样式bug,在使用点击事件切换表格尺寸大小时,会发现固定列样式没有对齐,在切换页面之后,就会出现列错误的现象,如下: 解决方法: 1.给表格添加ref < ...

  7. table表格表头合并单元格问题

    1.效果图 2.代码 <thead><tr><th rowspan="2">班级</th><th rowspan=" ...

  8. LayUI 数据表格 table表格在同一单元格换行显示2个数据 一个单元格放2个数据或多个数据

    具体的自己实现去,我这里上思路和关键点 1.头部添加高度自适应 <style>.layui-table-cell {height: auto;} </style> </h ...

  9. pyqt tableWidget 单元格设置颜色

    #字体颜色(红色) self.tableWidget_Software.item(1 ,0).setForeground(QBrush(QColor(255,0,0)))#背景颜色(红色) self. ...

最新文章

  1. vs社区版到期离线激活_vs2019离线安装包
  2. python装饰器-python装饰器是哪个版本支持的
  3. java-Calendar类
  4. 计算机组成原理 -- 概念点整理
  5. SAP CRM的订单模型移植到S4HANA后,在订单保存功能上作出的改进
  6. 乐播投延迟很高_大屏也要高刷新!华为4K@120智慧屏初体验,屏幕软件都够硬
  7. 【牛客 - 157E】青蛙(floyd最短路,建图)
  8. 路飞学城14天集训营作业2—三级菜单
  9. 两个类相互包含对方成员的问题(2)
  10. 2008年入职华为,开始运维生涯
  11. PADS 不同单位之间的切换
  12. 示波器探头的 x1x10衰减、补偿校准手法
  13. 多帧点云数据拼接合并_点云拼接
  14. 【老生谈算法】基于matlab的车牌识别算法详解及程序源码——车牌识别算法
  15. MS发起的PDP上下文激活过程----PPP和PDP激活是什么区别
  16. python中reduce什么意思_python中的reduce
  17. 老王出品:一文读懂证券业第三方存管和证券托管模式
  18. CESI: Canonicalizing Open Knowledge Bases using Embeddings and Side Information
  19. JS实现仿新浪微博大厅和腾讯微博首页滚动效果_前端开发
  20. windows10/11通过蓝牙传输文件

热门文章

  1. 京东撸货前期准备流程急设备要求
  2. JavaScript数组最全整理(包含ES6)
  3. 两个颜色叠加之后是什么颜色
  4. git将代码提交到远程分支(非主分支)
  5. Activiti7工作流引擎
  6. Qt实现 剪映 桌面端的界面效果
  7. 线性分类和非线性分类
  8. pdf怎么转图片?pdf文件转化成图片的步骤
  9. 理解支付宝同步回调和异步回调
  10. 开发小程序需要的一些安装工具