找回密码
 立即注册

QQ登录

只需一步,快速开始

TY呀TY

中级会员

72

主题

193

帖子

647

积分

中级会员

积分
647
TY呀TY
中级会员   /  发表于:2022-11-22 11:30  /   查看:2666  /  回复:10
1金币
本帖最后由 Clark.Pan 于 2023-1-10 12:27 编辑

commandManager().excute 执行 Designer.setFormatDialog这个命令不生效

最佳答案

查看完整内容

GC.Spread.Sheets.Commands GC.Spread.Sheets.Designer.CommandNames 如果cmd是在这两个对象下的,那可以直接调用。 Designer.setFormatDialog 不在上述之下,属于未public接口,不建议直接使用,可能会有未知的风险。 注: designer为减少加载压力,对于一些内置命令不会直接注册生效,而是会在首次UI操作之后再进行注册。 如 Designer.setFormatDialog 命令,你会发现需要UI打开窗口点击确定执行一次之后,才可以通过代 ...

10 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-22 11:30:40
来自 11#
GC.Spread.Sheets.Commands
GC.Spread.Sheets.Designer.CommandNames
如果cmd是在这两个对象下的,那可以直接调用。
Designer.setFormatDialog 不在上述之下,属于未public接口,不建议直接使用,可能会有未知的风险。

注:
designer为减少加载压力,对于一些内置命令不会直接注册生效,而是会在首次UI操作之后再进行注册。
如 Designer.setFormatDialog 命令,你会发现需要UI打开窗口点击确定执行一次之后,才可以通过代码执行cmd。
类似未知问题可能还有很多,总体来说,不建议使用非公开命令。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-22 13:51:19
2#
您好,您的需求是什么呢?

如果是想通过命令打开单元格格式弹窗,可以参考以下代码:
  1. var designer = GC.Spread.Sheets.Designer.findControl(document.getElementById("gc-designer-container"))
  2. var command = GC.Spread.Sheets.Designer.getCommand('formatCells');
  3. command.execute(designer);
复制代码
如果不是,请详细描述下您的问题,这边再调研看看。
image.png118341673.png
回复 使用道具 举报
TY呀TY
中级会员   /  发表于:2022-11-22 14:39:00
3#
Lynn.Dou 发表于 2022-11-22 13:51
您好,您的需求是什么呢?

如果是想通过命令打开单元格格式弹窗,可以参考以下代码:


commandManager().execute({
          cmd: "Designer.setFormatDialog",
          selections: [{col: 6, colCount: 2, row: 8, rowCount: 2}],
          sheetName: "Sheet1",
          value: {backColor: "Accent 3", font: "12pt Calibri"}
        }) 执行这个
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-22 15:25:00
4#
TY呀TY 发表于 2022-11-22 14:39
commandManager().execute({
          cmd: "Designer.setFormatDialog",
          selections: [{ ...

从cmd命令来看,指的应该是单元格格式的dialog。
请问您是在哪找到的此命令呢?API文档里未查询到此命令及相关介绍。
如果是参考的demo或者文章您可以提供下链接,这边再调研下。
另,您执行此命令的需求是什么呢?如果是想打开单元格格式弹窗,参考前面回复中的代码即可,
或者请详细描述下您的需求,以便对此问题的理解。
回复 使用道具 举报
TY呀TY
中级会员   /  发表于:2022-11-22 15:34:58
5#
Lynn.Dou 发表于 2022-11-22 15:25
从cmd命令来看,指的应该是单元格格式的dialog。
请问您是在哪找到的此命令呢?API文档里未查询到此命令 ...

image.png90032652.png image.png863258666.png 这个就是通过弹窗确认之后的命令
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-22 16:27:29
6#
TY呀TY 发表于 2022-11-22 15:34
这个就是通过弹窗确认之后的命令

这边调研下执行此命令的方法,有结果贴中回复您。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-5 17:47:59
7#
调研过程中有一些疑问与您确认下,您为什么要通过代码去执行“确定”按钮呢?
“确定”按钮命令的执行需要依赖于单元格格式弹窗中所选中的信息,最终表现为单元格设置了了样式。
如果是想通过代码给单元格设置样式,为什么不直接用style等API直接去设置呢?
请结合您的业务情况详细描述下, 以便问题的进一步调研。
回复 使用道具 举报
TY呀TY
中级会员   /  发表于:2022-12-26 17:33:42
8#
Lynn.Dou 发表于 2022-12-5 17:47
调研过程中有一些疑问与您确认下,您为什么要通过代码去执行“确定”按钮呢?
“确定”按钮命令的执行需要 ...

这是为了进行协同操作,这边执行了此命令,那边就拿到此命令对象然后直接excute执行,结果就是执行无效
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-26 18:35:59
9#
本帖最后由 Lynn.Dou 于 2022-12-27 09:23 编辑

需求了解,正在调研方案,有进展会贴中回复您。
------------------------------------------------
更新进展:
在执行 Designer.setFormatDialog 命令时,需要加上dialogOption。示例代码:
  1. spread.commandManager().execute({
  2.         cmd: "Designer.setFormatDialog",
  3.         sheetName: "Sheet2",
  4.         selections: [{col: 0, colCount: 1, row: 0, rowCount: 1}],
  5.         value: {backColor: '#92D050'},
  6.         dialogOption: {
  7.             fillTabOption: {backColor: '#92D050'}

  8.         }
  9. })
复制代码
image.png976645812.png
您在给designer添加侦听器时可以获取到这一信息:
image.png318498839.png

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部