请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

吴钦飞

注册会员

5

主题

9

帖子

42

积分

注册会员

积分
42
  • 434

    金币

  • 5

    主题

  • 9

    帖子

吴钦飞
注册会员   /  发表于:2025-11-4 17:44  /   查看:52  /  回复:2
本帖最后由 Joestar.Xu 于 2025-11-5 17:19 编辑


调研编号:SJS-32173

问题:


1. 在 v17 中执行 “数据 -> 分列”操作后,会触发 CellChanged 事件 并且 isFileModified 变量会变为 true
2. 在 v18 中执行 “数据 -> 分列”操作后,上述变化未发生

复现涉及的代码如下:

  1. var spread = GC.Spread.Sheets.Designer.findControl(document.querySelector("#gc-designer-container")).getWorkbook();

  2. spread.bind(GC.Spread.Sheets.Events.SelectionChanged, (...args) => {
  3.     console.log(...args);
  4. });

  5. spread.bind(GC.Spread.Sheets.Events.CellChanged, (...args) => {
  6.     console.log(...args);
  7. });
  8. spread.bind(GC.Spread.Sheets.Events.ValueChanged, (...args) => {
  9.     console.log(...args);
  10. });
  11. spread.bind(GC.Spread.Sheets.Events.RangeChanged, (...args) => {
  12.     console.log(...args);
  13. });


  14. var designer = GC.Spread.Sheets.Designer.findControl(document.querySelector("#gc-designer-container"));

  15. designer.setData("isFileModified", false)

  16. console.log(designer.getData("isFileModified"))
复制代码


复现步骤如图:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

2 个回复

Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-11-4 17:47:15
沙发
您好,您描述的情况我了解了,这边调研一下,后续有进展我会在本贴中回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:6 天前
板凳
您好,经排查,分列目前不会触发旧版本中的相关事件,主要是为了性能考虑,在新版本您可以使用:

spread.commandManager().addListener("anyscLicenser", function () {
  for (const element of arguments) {
    let cmd = element.command;
    console.log(element);
  }
});

来监听分列行为的发生。

isFileModified未发生变化已初步确认是一个bug,将在后续版本修复。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部