请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

artman5545

中级会员

31

主题

93

帖子

901

积分

中级会员

积分
901
artman5545
中级会员   /  发表于:2018-8-28 14:43  /   查看:3522  /  回复:4
本帖最后由 artman5545 于 2018-8-29 14:55 编辑

需求是判断预警时间范围,如果计划完成时间在预警时间段内要整行显示橘黄色,共40列。
代码如下:

            var rowCount = sheet.getRowCount(GC.Spread.Sheets.SheetArea.viewport);
            for (i = 0; i < rowCount; i++) {
                var warningStyle = new GC.Spread.Sheets.Style();
                warningStyle.foreColor = '#f8ac59';
                var ranges = [new GC.Spread.Sheets.Range(i, 0, 1, 40)];
                sheet.conditionalFormats.addFormulaRule("=AND(K" + (i + 1) + ">=DATEVALUE(\"2018/08/28\"),K" + (i + 1) + "<=DATEVALUE(\"2018/09/01\"))", warningStyle, ranges);
            }

没有效果
PS:我用sheet.setFormula()把上述条件格式结果输出在第一列,显示结果是正确的。

4 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-28 18:07:07
沙发
这个我试一下,明天给您回复
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-29 12:09:43
板凳
您好,这个问题是公式相对引用和绝对引用的问题,您是不是想判断日期后将这一行的字体颜色全部改变为#f8ac59 ,如果是公式中要用绝对引用也就是加上$符号
像这样:
var rowCount = sheet.getRowCount(GC.Spread.Sheets.SheetArea.viewport);
                for (i = 0; i < rowCount; i++) {
                        var warningStyle = new GC.Spread.Sheets.Style();
                        warningStyle.foreColor = '#f8ac59';
                        var ranges = [new GC.Spread.Sheets.Range(i, -1, 1, -1)];
                        sheet.conditionalFormats.addFormulaRule('=AND($K' + (i + 1) + '>=DATEVALUE("2018/08/28"),$K' + (i + 1) + '<=DATEVALUE("2018/09/01"))', warningStyle, ranges);
                }
回复 使用道具 举报
artman5545
中级会员   /  发表于:2018-8-29 14:55:29
地板
谢谢,问题解决了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-29 15:04:44
5#
不客气,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部