找回密码
 立即注册

QQ登录

只需一步,快速开始

表白心迹

注册会员

7

主题

47

帖子

162

积分

注册会员

积分
162
表白心迹
注册会员   /  发表于:2023-4-18 14:29  /   查看:2389  /  回复:15
31金币
是否有可以获取设置了公式的单元格计算后的值的方法?
有需要根据其计算结果的正负去设置对应单元格的背景色的需求!
求助!

最佳答案

查看完整内容

我尝试在获取值的地方加上了settimeout改变执行顺序, 发现可以打印出公式计算后的值了,可能是JS微任务和宏任务执行顺序的关系影响了. 感谢您的回答哈!辛苦啦❤

15 个回复

倒序浏览
最佳答案
最佳答案
表白心迹
注册会员   /  发表于:2023-4-18 14:29:30
来自 13#
MillionDream 发表于 2023-4-18 15:25
我本地测试了一下。

image.png69488219.png
我尝试在获取值的地方加上了settimeout改变执行顺序,
发现可以打印出公式计算后的值了,可能是JS微任务和宏任务执行顺序的关系影响了.
感谢您的回答哈!辛苦啦❤
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-18 14:41:28
2#
试试getValue()这个接口。

参考文档:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Bindings.CellBindingSource#getvalue
回复 使用道具 举报
表白心迹
注册会员   /  发表于:2023-4-18 14:45:09
3#
MillionDream 发表于 2023-4-18 14:41
试试getValue()这个接口。

参考文档:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spr ...

这个不行,打印出来都是null
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-18 14:46:44
4#
image.png982809143.png

image.png67041014.png

我本地试了一下是可以的诶。

要不你发下代码我帮你看看?
回复 使用道具 举报
表白心迹
注册会员   /  发表于:2023-4-18 15:04:36
5#
for (let c = 3; c < 15; c++) {
      for(let i=0; i<row; i++){
        let formula01 = `${Convert26(c+1)}${2+i*3} - ${Convert26(c+1)}${3+i*3}`
        sheet.setFormula(
          3+i*3,
          c,
          `=IFERROR(${formula01},"")`
        );

        let cellValue = sheet.getValue(3+i*3, c);
        console.log('cellValue', cellValue)   // 打印出来全是 null
      }
    }
回复 使用道具 举报
表白心迹
注册会员   /  发表于:2023-4-18 15:06:19
6#
MillionDream 发表于 2023-4-18 14:46
我本地试了一下是可以的诶。

要不你发下代码我帮你看看?

[img][/img]
打印出来依然全是null 哎
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-18 15:07:42
7#
表白心迹 发表于 2023-4-18 15:06
[/img]
打印出来依然全是null 哎

看不见你的图片
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-4-18 15:09:18
8#
那表格里面的Cell有值显示出来吗?
回复 使用道具 举报
表白心迹
注册会员   /  发表于:2023-4-18 15:09:51
9#
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部