找回密码
 立即注册

QQ登录

只需一步,快速开始

micropole
初级会员   /  发表于:2021-11-12 17:34  /   查看:1388  /  回复:3
问题是这样的,有如下的表格:
1636708998(1).png475089721.png

当在D列编辑的时候后,在E列自动填充当前时间:
1636709184(1).png465089415.png
1636709214(1).png44562987.png

我的问题是,当从其它地方复制一条信息,然后粘贴到D列后,E列的日期可以自动填充,但当我点击Ctrl + Z撤销粘贴动作的时候,刚刚自动填充的日期没有撤销,依然存在,请问这种情况是否正常,如果正常我该如何做,能撤销并返回前一值?
1636709373(1).png150578307.png
1636709399.png542825927.png

20211112173252.rar

1.42 KB, 下载次数: 24

3 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-15 17:10:17
推荐
根据您的需求,对代码进行了修改,您可以测试下。
代码如下:
  1. sheet.bind(GC.Spread.Sheets.Events.RangeChanged, function (sender, args) {
  2.                                 console.log("RangeChanged")
  3.                                 console.log(args);
  4.                                 if (args.action == 1 || args.action == 2 || args.action == 3 || args.action == 6) {
  5.                                         var sc_col_no = 4;
  6.                                         var value = sheet.getValue(args.row, args.col);
  7.                                         if(args.isUndo) {
  8.                                                 if(value) {
  9.                                                         sheet.setValue(args.row, sc_col_no, new Date(), GC.Spread.Sheets.SheetArea.viewport);
  10.                                                 } else {
  11.                                                         sheet.setValue(args.row, sc_col_no, null, GC.Spread.Sheets.SheetArea.viewport)
  12.                                                 }
  13.                                         } else {
  14.                                                 if(value) {
  15.                                                         sheet.setValue(args.row, sc_col_no, new Date(), GC.Spread.Sheets.SheetArea.viewport);
  16.                                                 }
  17.                                         }
  18.                                 }
  19.                         });

  20.                         sheet.bind(GC.Spread.Sheets.Events.CellChanged, function (e, info) {
  21.                                 console.log("CellChanged")
  22.                                 console.log(info);
  23.                                 if(info.newValue != null) {
  24.                                         var sc_col_no = 4;
  25.                                         sheet.setValue(info.row, sc_col_no, new Date(), GC.Spread.Sheets.SheetArea.viewport);
  26.                                 } else {
  27.                                         sheet.setValue(info.row, sc_col_no, null, GC.Spread.Sheets.SheetArea.viewport);
  28.                                 }
  29.                         });
复制代码


完整代码请参考附件。

test1115.zip

2.7 KB, 下载次数: 16

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-12 18:10:44
沙发
您好,这边导入您提供的ssjson文件,
测试编辑D列时,E列不能自动填充数据。
请提供可复现此问题的可运行demo,
并详细描述操作步骤,
需要先复现您描述的问题,才能进一步调研是否有解决方案。
image.png293513182.png
回复 使用道具 举报
micropole
初级会员   /  发表于:2021-11-15 10:52:53
板凳
请根据最新的附件,按照我开贴的操作,就应该可以复现问题。

test1115.rar

2.4 KB, 下载次数: 19

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部