找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2021-4-1 19:42  /   查看:2115  /  回复:3
1金币
示例代码:

  1. window.onload = function () {
  2.   var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 2 })
  3.   initSpread(spread)
  4. }

  5. function initSpread(spread) {
  6.   const commandManager = spread.commandManager()
  7.   commandManager.addListener('test', (...cmds) => {
  8.     alert(JSON.stringify(cmds))
  9.   })

  10.   GC.Spread.Sheets.Commands.editCell.execute(spread, {
  11.     sheetName: 'Sheet1',
  12.     row: 1,
  13.     col: 1,
  14.     newValue: 123,
  15.   })
  16. }
复制代码


运行代码后你会发现没有弹出来 alert 对话框,但是如果双击单元格进行编辑,会弹出来 editCell 的 alert 对话框



3 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-2 09:22:39
沙发
您好,您可以参考下面的代码。需要通过commandManager.execute才能被commandManager.addListener监听到。
  1. window.onload = function () {
  2.         var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 2 })
  3.         initSpread(spread)
  4.      }

  5.     function initSpread(spread) {
  6.         const commandManager = spread.commandManager()
  7.         commandManager.addListener("test", (...cmds) => {
  8.             alert(JSON.stringify(cmds))
  9.         })

  10.         var sheet = spread.getActiveSheet();
  11.         commandManager.execute({cmd: "editCell", sheetName: sheet.name(), row: 1, col: 1, newValue: 123});

  12.     }
复制代码


回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2021-4-2 17:54:09
板凳
DerrickJiao 发表于 2021-4-2 09:22
您好,您可以参考下面的代码。需要通过commandManager.execute才能被commandManager.addListener监听到。
...

明白了,那请问有没有办法在 ValueChanged (或者其他类似的能够知道单元格值变化了的事件里)的时候知道值变化的原因,是因为本地自己的操作,还是多人协作时从服务器推送过来的 command 呢?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-4-2 18:13:24
地板
nutstore 发表于 2021-4-2 17:54
明白了,那请问有没有办法在 ValueChanged (或者其他类似的能够知道单元格值变化了的事件里)的时候知道 ...

目前来说在ValueChanged暂时没有对应的方法用于判断是来自本地的操作还是推送的命令。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部