找回密码
 立即注册

QQ登录

只需一步,快速开始

Dtttax

银牌会员

265

主题

663

帖子

2116

积分

银牌会员

积分
2116
Dtttax
银牌会员   /  发表于:2023-3-10 16:20  /   查看:1504  /  回复:3
1金币
本帖最后由 Lynn.Dou 于 2023-3-14 11:40 编辑

假如一次操作了两个sheet,但是需要同时撤回。应该怎么传参数。

setCellValue(){
  let spread=this.spread;
  let sheet=spread.getActiveSheet();
  let sheet1=spread.getSheet(1);
  let cell=sheet.getCell(10,2);
  cell.value(100);
  cell.backColor("red");
    let cell1=sheet1.getCell(10,2);
      cell1.value(100);
      cell1.backColor("red");
},



commandManager.execute({
    cmd: "undoExt",
    spread:spread,
    sheetName:sheetName
});
这里的sheetName是不是对哪个sheet撤回有效,那两个以上应该怎么撤回。

最佳答案

查看完整内容

sheetName写成字符串数组即可,示例代码如下:

3 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-10 16:20:01
来自 4#
sheetName写成字符串数组即可,示例代码如下:
  1. var command1 = {
  2.                 canUndo: true,
  3.                 execute: function (spread, options, isUndo) {
  4.                     var Commands = GC.Spread.Sheets.Commands;
  5.                     if (isUndo) {
  6.                         console.log(options);
  7.                         Commands.undoTransaction(spread, options);
  8.                         return true;
  9.                     } else {
  10.                         Commands.startTransaction(spread, options);
  11.                         spread.suspendPaint();

  12.                         var sheet1 = spread.getActiveSheet();
  13.                         sheet1.setValue(0,0,"sheet1");
  14.                         var sheet2 = spread.getSheet(1);
  15.                         sheet2.setValue(0,0,"sheet2");

  16.                         spread.resumePaint();
  17.                         Commands.endTransaction(spread, options);
  18.                         return true;
  19.                     }
  20.                 }
  21.             };
  22.             var commandManager = spread.commandManager();
  23.             commandManager.register('sheetCmd', command1);


  24.             document.getElementById('test').onclick = function () {
  25.                 commandManager.execute({
  26.                     cmd: 'sheetCmd',
  27.                     sheetName: ["Sheet1", "Sheet2"]
  28.                 });
  29.             }
复制代码
image.png827698669.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-10 17:48:28
2#
您好,
“一次操作两个sheet”您是如何操作的呢?通过代码调用命令实现的吗?
请结合业务场景提供一个具体的示例,这边才好做进一步的调研。
回复 使用道具 举报
Dtttax
银牌会员   /  发表于:2023-3-10 17:58:20
3#
是的啊,就比如我上面的代码setCellvaue方法就操作了两个sheet.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部