找回密码
 立即注册

QQ登录

只需一步,快速开始

高阳0910

初级会员

38

主题

142

帖子

476

积分

初级会员

积分
476
高阳0910
初级会员   /  发表于:2024-8-26 14:58  /   查看:288  /  回复:14
本帖最后由 高阳0910 于 2024-8-26 15:08 编辑

vue版本 3.2.33。 业务就是自定义右键菜单 进行sheetTab的操作,现在插入以后空白页。


<div class="excel-container" v-resize="handleResize">
    <gc-spread-sheets
        class="spread-container"
        @workbookInitialized="initSpread"
      />
    <div id="statusBar"></div>
  </div>


initSpread (spread) {
        this.spread = GC.Spread.Sheets.findControl(spread.getHost());
        this.initStatusBar()
        this.spread.suspendPaint()
        this.initFirstSheet()
        this.spread.options.tabEditable = false;
        this.spread.options.newTabVisible = false;
        this.spread.resumePaint()
        this.setEvent()
        this.getCWBBGSRightMenu(this.spread, '')
      },



getCWBBGSRightMenu (spread, type) {
        const that = this
        spread
          .commandManager()
          .register(
            'insertSheet',
            {
              canUndo: true,
              execute: function (context, options, isUndo) {
                var Commands = GC.Spread.Sheets.Commands;
                // 在此加cmd
                options.cmd = 'insertSheet';
                if (isUndo) {
                  Commands.undoTransaction(context, options);
                  return true;
                } else {
                  Commands.startTransaction(context, options);
                  that.$Message.info('新增sheet,弹框新增')
                  spread.suspendPaint()
                  let sheetCount = spread.getSheetCount()
                  spread.addSheet(sheetCount + 1, new GC.Spread.Sheets.Worksheet('报表2'))
                  spread.resumePaint()
                  console.log(sheetCount)
                  // that.initFirstSheet(sheetCount + 1, '报表2')
                  Commands.endTransaction(context, options);
                  return true;
                }
              }
            });
        
        let insertSheet = {
          command: 'insertSheet',
          text: '添加报表',
          name: 'insertSheet',
          iconClass: 'gc-spread-custom-icon',
          workArea: 'sheetTab'
        };
        spread.contextMenu.menuData = [insertSheet]
      },








image.png479833068.png

14 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-8-26 17:11:03
沙发
您好!通过您提供的代码未曾发现不恰当之处,需要您提供一个能够完全复现该问题的demo,只要复现这个问题即可。我们需要根据您提供的demo来复现问题并分析可能的原因,尽可能保持双方环境一致。
回复 使用道具 举报
高阳0910
初级会员   /  发表于:2024-8-26 18:40:19
板凳
Wilson.Zhang 发表于 2024-8-26 17:11
您好!通过您提供的代码未曾发现不恰当之处,需要您提供一个能够完全复现该问题的demo,只要复现这个问题即 ...

可以看下  我新创建了一个vue3项目 。功能基本都在里面了。右键sheetTab的位置 添加个sheet就行了。问题依旧存在

spread-demo.zip

179.75 KB, 下载次数: 8

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-27 11:10:55
地板
高阳0910 发表于 2024-8-26 18:40
可以看下  我新创建了一个vue3项目 。功能基本都在里面了。右键sheetTab的位置 添加个sheet就行了。问题 ...

收到demo,我们运行调试后再向您同步结论,请您等待!
回复 使用道具 举报
高阳0910
初级会员   /  发表于:2024-8-27 15:01:26
5#
Wilson.Zhang 发表于 2024-8-27 11:10
收到demo,我们运行调试后再向您同步结论,请您等待!

在问个问题 ,就是这个公式栏 能单独在spreadJs里用吗? image.png911447448.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-27 16:48:25
6#
高阳0910 发表于 2024-8-27 15:01
在问个问题 ,就是这个公式栏 能单独在spreadJs里用吗?

可以在SpreadJS组件中集成公式编辑框,您可以参考官网教程了解详情,同时评估是否能满足您的需要:
https://demo.grapecity.com.cn/sp ... mula-textbox/purejs
回复 使用道具 举报
高阳0910
初级会员   /  发表于:2024-8-28 19:24:08
7#
Wilson.Zhang 发表于 2024-8-27 11:10
收到demo,我们运行调试后再向您同步结论,请您等待!

有结果吗?项目应该能运行吧
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-29 11:40:05
8#
本帖最后由 Wilson.Zhang 于 2024-8-29 11:41 编辑
高阳0910 发表于 2024-8-28 19:24
有结果吗?项目应该能运行吧

项目可以运行,通过页签切换Worksheet页时通过您定义的命令添加的Worksheet是空白的,而通过tab栏的tab导航切换Worksheet页即可正常显示内容,猜测可能有其他代码影响,如下动图所示:
新增Worksheet空白现象.gif

将您自定义的新增命令单独抽取出来运行也正常,您可以参考附件中的demo尝试重构下代码,我们也继续再分析下:

自定义添加Worksheet菜单选项(SpreadJS).html

4.75 KB, 下载次数: 4

回复 使用道具 举报
高阳0910
初级会员   /  发表于:2024-8-29 13:58:34
9#
本帖最后由 高阳0910 于 2024-8-29 14:00 编辑
Wilson.Zhang 发表于 2024-8-29 11:40
项目可以运行,通过页签切换Worksheet页时通过您定义的命令添加的Worksheet是空白的,而通过tab栏的tab导 ...

你写的哪个确实可以。但是你使用的designer的。我是无工具栏的。最好还是能在我给你们的demo上修改 。改完再给我发一个压缩包吧。感谢~
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-29 17:43:37
10#
高阳0910 发表于 2024-8-29 13:58
你写的哪个确实可以。但是你使用的designer的。我是无工具栏的。最好还是能在我给你们的demo上修改 。改 ...

我们提供的正是无工具栏的SpreadJS组件版本,如下图所示,您可以参考修改。
1724924605557.png638659667.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部