【泛微E9】数据填报excel表格赋高亮

技术细节

获取当前sheet某行某列字段数据

var llvalue = sheet.getCell(rowIndex, colIndex).value();

运用accDiv,accAdd计算excel列得平均数与总数

accDiv(accAdd(accAdd(llvalue,ll1value),ll2value),3)

遍历明细表当前行得所有单元格,赋高亮

for (var index = startCol; index < startCol + colCount; index++) {
                        var style1 = sheet.getStyle(rowIndex, index);
                        style1.backColor = "red"; 
                        sheet.setStyle(rowIndex, index, style1);
                         }

整体代码如下:

function afterUploadData() {

    var sheet = excel.getActiveSheet();
    var table = sheet.tables.findByName('detail1');//取明细表1的对象
    if (table) {
        var colIndex = 6;//来料1 ll字段的列索引
        var dataRange = table.dataRange();
        var startCol = dataRange.col;   
        var colCount = dataRange.colCount;
        var startRow = dataRange.row;//明细表开始行
        var rowCount = dataRange.rowCount;//明细表行数
        excel.workbook.suspendPaint();

        var jh3value;
        for (var rowIndex = startRow; rowIndex < startRow + rowCount; rowIndex++) {

            var llvalue = sheet.getCell(rowIndex, colIndex).value();//ll字段的值
            var ll1value = sheet.getCell(rowIndex, colIndex+1).value();//ll1字段的值
            var ll2value = sheet.getCell(rowIndex, colIndex+2).value();//ll2字段的值
            jh3value = sheet.getCell(rowIndex, colIndex+3).value();//jh3字段的值


            var isHistory = false;
            //当来料1、来料2、来料3中有一个有值,则为历史数据
            if((llvalue != null && typeof llvalue !='undefined') || (ll1value != null && typeof ll1value !='undefined') || (ll2value != null && typeof ll2value !='undefined') ){
                isHistory = true;
            }

            if(jh3value>=100){
                var llzvalue = accDiv(accAdd(accAdd(llvalue,ll1value),ll2value),3);
                var value1 = accDiv(jh3value,llzvalue);      //计算当月计划与前三个月来料均值对比
                if (value1 < 0.5 || value1>1.5) {//满足条件设置背景色
                    for (var index = startCol; index < startCol + colCount; index++) {
                        //遍历明细表当前行的所有单元格,赋高亮
                        var style1 = sheet.getStyle(rowIndex, index);
                        style1.backColor = "red";
                        sheet.setStyle(rowIndex, index, style1);
                    }
                }
                else{
                    for (var index = startCol; index < startCol + colCount; index++) {
                        var style1 = sheet.getStyle(rowIndex, index);
                        if(isHistory){
                            style1.backColor = null;
                        } else {
                            style1.backColor = "yellow";
                        }
                        sheet.setStyle(rowIndex, index, style1);
                    }
                }
            }
            else {
                for (var index = startCol; index < startCol + colCount; index++) {
                    var style1 = sheet.getStyle(rowIndex, index);
                    if(isHistory){
                        style1.backColor = null;
                    } else {
                        style1.backColor = "yellow";
                    }
                    sheet.setStyle(rowIndex, index, style1);
                }
            }

            var value = sheet.getCell(rowIndex, colIndex).value();//ll字段的值
            if (value < 0&&ll1value<0&&ll2value<0) {//满足条件设置背景色
                for (var index = startCol; index < startCol + colCount; index++) {
                    //遍历明细表当前行的所有单元格,赋高亮
                    var style1 = sheet.getStyle(rowIndex, index);
                    style1.backColor = "yellow";
                    sheet.setStyle(rowIndex, index, style1);
                }
            } else {
                
            }

        }
        excel.workbook.resumePaint();
    }
    return { triggerFieldAssign: false };//导入数据后不触发字段赋值
};

结果

在这里插入图片描述

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不爱喝水得奥特曼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值