找回密码
 立即注册

QQ登录

只需一步,快速开始

清酒℡

注册会员

16

主题

65

帖子

191

积分

注册会员

积分
191
清酒℡
注册会员   /  发表于:2023-6-27 13:39  /   查看:1389  /  回复:7
1金币
定义了一个异步函数,会返回中文和数字  期望返回中文的时候,将该单元格字体颜色变为红色显示,目前该函数有context这一上下文参数,想知道是否可以利用这一参数修改该单元格的字体颜色
image.png750052795.png

最佳答案

查看完整内容

paint方法是对单元格canvas的重绘, 用style存储的样式信息,在canvas中进行绘制,表现为如字体的颜色改变。 而异步函数类似于excel公式的概念,最终的表现是一个公式计算结果。 二者不是一个概念,不能混为一谈。 建议您参考前面方案,如用条件格式对不同value做样式控制。

7 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-27 13:39:56
来自 4#
paint方法是对单元格canvas的重绘, 用style存储的样式信息,在canvas中进行绘制,表现为如字体的颜色改变。
而异步函数类似于excel公式的概念,最终的表现是一个公式计算结果。
二者不是一个概念,不能混为一谈。
建议您参考前面方案,如用条件格式对不同value做样式控制。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-27 18:00:09
2#
您好,
自定义函数返回的只是value,单元格显示为红色实际与样式有关。
可以考虑下用条件格式对value做判断,当为中文时即显示红色。
可以网上搜索下判断value为中文的Excel公式,下方为示例:

image.png855917053.png

回复 使用道具 举报
清酒℡
注册会员   /  发表于:2023-6-27 18:10:00
3#
Lynn.Dou 发表于 2023-6-27 18:00
您好,
自定义函数返回的只是value,单元格显示为红色实际与样式有关。
可以考虑下用条件格式对value做判 ...

就是在公式计算结果返回时,不能根据这个结果去动态改变该单元格的样式吗,我看paint 这个函数里面有style 这个参数  也有context  可以通过style修改单元格背景色,想着 evaluate也实现这一效果
                GC.Spread.Sheets.CellTypes.Text.prototype.paint = function(ctx, value, x, y, w, h, style, context) {
                // console.log('value', value)
                    if (Number(value) === 0) {
                        oldPaint.call(this, ctx, '', x, y, w, h, style, context)
                    } else {
                        if (value && value._error === '#DIV/0!') {
                            value = '除数为0'
                        } else if (value && value._error) {
                            value = '来源数据不合法'
                             style.foreColor  = 'red'
                        }
                        oldPaint.call(this, ctx, value, x, y, w, h, style, context)
                    }
                }
回复 使用道具 举报
清酒℡
注册会员   /  发表于:2023-6-28 14:26:14
5#
Lynn.Dou 发表于 2023-6-28 14:10
paint方法是对单元格canvas的重绘, 用style存储的样式信息,在canvas中进行绘制,表现为如字体的颜色改变。 ...

噢噢 好的 谢谢
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-28 15:18:02
6#

不客气,请问您还有其他问题吗?
回复 使用道具 举报
清酒℡
注册会员   /  发表于:2023-6-28 15:26:28
7#
Joestar.Xu 发表于 2023-6-28 15:18
不客气,请问您还有其他问题吗?

那这个问题就没有了
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-28 15:28:00
8#
清酒℡ 发表于 2023-6-28 15:26
那这个问题就没有了

好的,那就先结贴了,后续有问题随时开贴提问哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部