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

QQ登录

只需一步,快速开始

清风丶琉璃

注册会员

13

主题

25

帖子

88

积分

注册会员

积分
88
清风丶琉璃
注册会员   /  发表于:2025-12-2 09:00  /   查看:44  /  回复:3
1金币
有个问题我有个监听方法this.spread.bind(GC.Spread.Sheets.Events.ValueChanged, (e, args) => {})判断第5列加第6列的合不等于第3列那第三列的对应表格标红,但是我点击导出方法导出表格以后在本地查看这个监听不生效,我需要怎么处理让本地也有这个功能,条件格式要怎么写

3 个回复

Wilson.Zhang
超级版主   /  发表于:2025-12-2 12:07:23
沙发
您好!AI技术顾问的思路值得参考。

您添加的事件监听在代码运行过程中能监听到特定动作,脱离了代码,导出ssjson文件或者sjs文件甚至xlsx文件,这些格式化文件内部无法保留这种监听信息,这一点请您知悉。

再看您的需求,是需要判断两个单元格的和是否等于另外一个单元格的和,如果满足条件就给一个特定的样式。这样看下来,其实可以用条件格式来实现。

举个例子,以A1、B1和C1这三个单元格来举例。假定要判断A1+B1的和不等于C1单元格值时,让背景颜色显示为红色,那么可以在C1单元格设置条件规则,即公式:”=A1+B1<>C1“,再设置单元格背景颜色为红色。

因为此前了解到您在线下场景使用的电子表格软件是WPS,所以我在WPS操作演示,如下动图所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
清风丶琉璃
注册会员   /  发表于:2025-12-2 13:53:33
板凳
Wilson.Zhang 发表于 2025-12-2 12:07
您好!AI技术顾问的思路值得参考。

您添加的事件监听在代码运行过程中能监听到特定动作,脱离了代码,导 ...

var sheet = this.spread.getActiveSheet();
var condition = new GC.Spread.Sheets.ConditionalFormatting.Condition(
    GC.Spread.Sheets.ConditionalFormatting.ConditionType.formulaCondition,
    {
        formula: "=C1<>E1+F1", // 假设第3列为C列,第5列为E列,第6列为F列
        style: {
            backColor: "red",
            foreColor: "white"
        }
    }
);

// 应用于整列或指定范围,例如 C:C 列
sheet.conditionalFormats.addCondition(condition, GC.Spread.Sheets.RangeInfo.fromRowColumnCount(0, 2, sheet.getRowCount(), 1));我用ai的这个提示报错"TypeError: Cannot read properties of undefined (reading 'fromRowColumnCount')"
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-12-2 17:36:07
地板
清风丶琉璃 发表于 2025-12-2 13:53
var sheet = this.spread.getActiveSheet();
var condition = new GC.Spread.Sheets.ConditionalFormatt ...

很抱歉我没有把AI的错误代码给您指出来,只告诉您AI的思路是值得参考的。

请参考如下代码:
  1. sheet.conditionalFormats.addFormulaRule("=A1+B1<>C1", style, [new GC.Spread.Sheets.Range(0, 2, 1, 1)]);
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部