如何动态标红前端表格中的异常数据

本文介绍了如何在Vue应用中,利用ElementUI组件实现表格中异常数据的红字标记以及弹出框中异常值的高亮。主要包括使用v-if判断和v-deep穿透样式来改变显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最终效果:

实现表格中,查看详情、修改弹出框的异常数据标红

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现思路:

整体的思路就是,表中有一个,异常信息字段,里面包含了异常的字段属性名称(后端根据逻辑判断哪些属性是异常的并返回),前端根据这个异常信息字段里包含的属性,动态标注。

一、表格数据标红

先判断异常字段包不包含异常值,如果包含就使用v-if来红字显示,否则就正常显示。

注意:这里你需要在哪一列进行异常判断就需要在哪一列加这个判断的代码。

      <el-table-column label="年级" align="center" prop="classGrade">
        <template slot-scope="scope">
<!--                    {{ scope.row.classGrade || '-' }}-->
          <span v-if="scope.row.remark.includes('异常值')" style="color: #ff4949">
                      {{ scope.row.classGrade || '-' }}
          </span>
          <span v-else>
                      {{ scope.row.classGrade || '-' }}
          </span>
        </template>
      </el-table-column>

二、弹出框中数据标红

这里直接使用三目运算符,如果判断为异常就使用red-text样式将文字变为红色。

这里有两个问题,
一是,直接用style样式,他是不起作用的,需要使用v-deep样式穿透。
二是,这个remark异常字段你在打开弹出框瞬间他不一定是有值的,所以还需要加这个判断条件:form.remark &&

        <el-form-item label="班级名称" prop="className">
<!--          <el-input v-model="form.className" :readonly="!this.isEditMode" placeholder="请输入班级名称" />-->
          <div  :class="form.remark && form.remark.includes('异常值') ? 'red-text':''">
            <el-input v-model="form.className" placeholder="请输入班级名称"
                        :disabled="!this.isEditMode"  />
          </div>
        </el-form-item>

样式穿透:

将input输入框,不管是否禁用都将文字颜色变为红色

.el-input.is-disabled .el-input__inner这里的元素具体要怎么选择,通过f12,选择元素工具,选择输入框,然后就能看到了,如果同样用的element ui的输入框,这里不用修改就能直接用了。

<style scoped lang="scss">
  .red-text ::v-deep{
    .el-input.is-disabled .el-input__inner{
      color: red;
    }
    .el-input--medium .el-input__inner{
      color: red;
    }
  }
</style>

在这里插入图片描述

### 使用 Pandas 和 Openpyxl 实现 Excel 文件中空值列 为了实现这一目,可以结合 `pandas` 库来处理数据中的逻辑判断,并利用 `openpyxl` 来应用条件格式。以下是具体的方法: #### 方法一:基于 Pandas 的 DataFrame 判断并使用 Openpyxl 设置条件格式 通过导入必要的库之后,先加载 Excel 数据至 pandas 的 DataFrame 中进行初步处理。 ```python import pandas as pd from openpyxl import load_workbook from openpyxl.styles import PatternFill, Font ``` 接着定义函数用于遍历每一列,当发现整列为全为空白时,则对该列应用色填充效果[^1]。 ```python def highlight_empty_columns(file_path): # 加载工作簿和选定活动表单 wb = load_workbook(filename=file_path) ws = wb.active # 将Excel转换成DataFrame以便于操作 data_df = pd.read_excel(file_path) red_fill = PatternFill(start_color='FFEE1111', end_color='FFEE1111', fill_type='solid') for col in range(1, ws.max_column + 1): column_letter = chr(col + 64) if col <= 26 else f"{chr((col - 1)//26 + 64)}{chr((col-1)%26 + 65)}" is_all_nan = all(data_df.iloc[:, col-1].isna()) if is_all_nan: for row in range(1, ws.max_row + 1): cell_ref = f'{column_letter}{row}' ws[cell_ref].fill = red_fill wb.save('highlighted_' + file_path.split('/')[-1]) ``` 此段代码会读入指定路径下的 Excel 文件,检查每列是否存在全部为空的情况;一旦确认某列完全由缺失值构成,则将其背景颜色设为色以作警示[^3]。 另一种更简洁的方式则是直接借助 `openpyxl` 提供的内置条件格式规则来进行批量设定,无需显式循环遍历单元格。 #### 方法二:仅依赖 Openpyxl 构建条件格式规则 对于希望简化流程的情形下,可以直接创建一个新的条件格式规则应用于整个表格范围内的特定条件下触发样式变化。 ```python from openpyxl import Workbook from openpyxl.formatting.rule import CellIsRule from openpyxl.styles import PatternFill wb = Workbook() ws = wb.create_sheet() red_fill_rule = CellIsRule(type='expression', formula=['ISBLANK(A1)'],
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿BAIKAL巛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值