找回密码
 立即注册

QQ登录

只需一步,快速开始

Joestar.Xu SpreadJS 开发认证
超级版主   /  发表于:2024-4-2 09:30  /   查看:1346  /  回复:0
本帖最后由 Joestar.Xu 于 2024-4-2 09:31 编辑

在Excel中可以使用Alt+PageUp/PageDown快捷键来实现切换到下一页的操作,SpreadJS原生上并没有这个快捷键,要怎么实现呢?


要实现这个需求很简单,核心在于快捷键的注册和切换下一页操作的代码,以下是一个简单的示例供大家参考:

  1. window.onload = function () {
  2.   let designerConfig = JSON.parse(
  3.     JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig)
  4.   );

  5.   let designer = new GC.Spread.Sheets.Designer.Designer(
  6.     "gc-designer-container",
  7.     designerConfig
  8.   );

  9.   let spread = designer.getWorkbook();

  10.   let sheet = spread.getActiveSheet();

  11.   let pageDown = {
  12.     canUndo: false,
  13.     name: "pageDown",
  14.     execute: function (context, options, isUndo) {
  15.       let Commands = GC.Spread.Sheets.Commands;
  16.       Commands.startTransaction(context, options);
  17.       context
  18.         .getActiveSheet()
  19.         .scroll(
  20.           0,
  21.           context.getHost().clientWidth -
  22.             context
  23.               .getActiveSheet()
  24.               .getColumnWidth(0, GC.Spread.Sheets.SheetArea.rowHeader)
  25.         );
  26.       Commands.endTransaction(context, options);
  27.       return true;
  28.     },
  29.   };

  30.   let pageUp = {
  31.     canUndo: false,
  32.     name: "pageUp",
  33.     execute: function (context, options, isUndo) {
  34.       let Commands = GC.Spread.Sheets.Commands;
  35.       Commands.startTransaction(context, options);
  36.       context
  37.         .getActiveSheet()
  38.         .scroll(
  39.           0,
  40.           -context.getHost().clientWidth +
  41.             context
  42.               .getActiveSheet()
  43.               .getColumnWidth(0, GC.Spread.Sheets.SheetArea.rowHeader)
  44.         );
  45.       Commands.endTransaction(context, options);
  46.       return true;
  47.     },
  48.   };

  49.   spread
  50.     .commandManager()
  51.     .register("pageDown", pageDown, 34, false, false, true, false);
  52.   spread
  53.     .commandManager()
  54.     .register("pageUp", pageUp, 33, false, false, true, false);
  55. };
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部