找回密码
 立即注册

QQ登录

只需一步,快速开始

ymslx_sjs

初级会员

49

主题

122

帖子

415

积分

初级会员

积分
415
ymslx_sjs
初级会员   /  发表于:2022-2-9 14:17  /   查看:4989  /  回复:14
本帖最后由 Lynn.Dou 于 2022-2-14 14:21 编辑

哪个API可以实现插入 - 活动单元格下移


本帖子中包含更多资源

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

x

14 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-9 14:57:29
沙发
您好,
目前原生上未提供接口,不能直接使用相关功能。
您可以先参考下方文章自定义实现。
(注:该文章仅供参考,未完整考虑相关场景)
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=136504

这边已将此问题记录至产品需求库中,如果后续计划添加此功能,会在本贴通知您。
回复 使用道具 举报
ymslx_sjs
初级会员   /  发表于:2022-2-9 16:10:39
板凳
Lynn.Dou 发表于 2022-2-9 14:57
您好,
目前原生上未提供接口,不能直接使用相关功能。
您可以先参考下方文章自定义实现。

感觉很需要这个API
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-9 17:23:52
地板
相关需求已提交,如果后续有计划实现,会在贴中及时通知您。
您可以先参考前面提供的教程,看能否满足现有需求。
回复 使用道具 举报
ymslx_sjs
初级会员   /  发表于:2022-2-15 10:10:13
5#
Lynn.Dou 发表于 2022-2-9 17:23
相关需求已提交,如果后续有计划实现,会在贴中及时通知您。
您可以先参考前面提供的教程,看能否满足现有 ...

您好,根据给的例子,单元格向上移动后,如果本来下面的单元格有内容,则出现如下的现象





详细代码如下:

本帖子中包含更多资源

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

x
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-15 10:18:21
6#
本帖最后由 Lynn.Dou 于 2022-2-15 12:13 编辑

如前面回复所说,上述示例未做完整场景测试,仅作参考作用。
如果不能满足您现有的需求,建议您先勿直接使用此demo功能,这边根据您提供的demo调研下原因。

如后续版本有计划添加此需求,会在本贴通知您。
回复 使用道具 举报
ymslx_sjs
初级会员   /  发表于:2022-2-15 10:24:35
7#
本帖最后由 Lynn.Dou 于 2022-2-15 11:31 编辑

啥?研究了两天,做了一个实例,然后给这个回复的???
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-15 12:08:06
8#
本帖最后由 Lynn.Dou 于 2022-5-24 11:12 编辑

关于此需求电话中做了大致介绍,具体测试demo发现,
如果通过 正常绘制边框、setValue赋值的方式设计表格,是可以正常“上移的”。
如附件demo所示。

您demo中数据 是经过 复制-绑定数据源-setValue赋值 等最终生成的,所以可能是哪一环节造成的了此问题。
具体原因需进一步调研,不排除是moveto方法的局限性。
本贴先做保留处理,待有进展会在贴中更新。(SJS-11880)
(更新进展:此问题已在V15.1.0修复)

本帖子中包含更多资源

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

x
回复 使用道具 举报
ymslx_sjs
初级会员   /  发表于:2022-2-21 11:14:57
9#
Lynn.Dou 发表于 2022-2-15 12:08
关于此需求电话中做了大致介绍,具体测试demo发现,
如果通过 正常绘制边框、setValue赋值的方式设计表格 ...

将moveTo的API改成以下方法,暂时可以解决我的问题:
1、先将要删除的单元格清空
2、对下面的单元格进行剪切粘贴
  1. sheet.clear(row, 2, ranges[0].rowCount, 7, 3, 32 /* Axis */ | 64 /* BindingPath */ | 1 /* Data */ | 16 /* Sparkline */ | 2 /* Style */ | 4 /* Comment */);
  2.         if (row + ranges[0].rowCount !== sheet.getRowCount()) {
  3.                 self.spread.commandManager().execute({
  4.                         cmd: "clipboardPaste",
  5.                         sheetName: sheet.name(),
  6.                         fromSheet: sheet,
  7.                         fromRanges: [new GC.Spread.Sheets.Range(row + ranges[0].rowCount, 2, sheet.getRowCount() - row - ranges[0].rowCount, 7)],
  8.                         pastedRanges: [new GC.Spread.Sheets.Range(row, 2, sheet.getRowCount() - row - ranges[0].rowCount, 7)],
  9.                         isCutting: true,
  10.                         clipboardText: "",
  11.                         pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all
  12.                 });
  13.         }
复制代码

评分

参与人数 1金币 +300 收起 理由
Lynn.Dou + 300

查看全部评分

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-21 11:30:44
10#
,感谢分享方案。
初步调研,该问题是由 value 和 bindingPath 之间的 moveTo 执行顺序引起的,正在进一步调研解决方案中。
您也可以参考以下workaround方案:
  1. cellButtonStyle.cellButtons[0].command = (sheet, row, col, option) => {
  2.                 let ranges = sheet.getSpans(new GC.Spread.Sheets.Range(row,col,1,1));
  3.                 if(ranges.length){
  4.                     if (row + ranges[0].rowCount == sheet.getRowCount()) {
  5.                         sheet.clear(row, 1, ranges[0].rowCount, 7, 3, 32 /* Axis */ | 64 /* BindingPath */ | 1 /* Data */ | 16 /* Sparkline */ | 2 /* Style */ | 4 /* Comment */);
  6.                     } else {
  7.                         // 先清除覆盖范围
  8.                         sheet.clear(row, 1, ranges[0].rowCount, 7, 3, 32/* Axis */ | 64/* BindingPath */ | 1/* Data */ | 16/* Sparkline */ | 2/* Style */ | 4/* Comment */);
  9.                         // 再执行moveTo方法
  10.                         sheet.moveTo(row + ranges[0].rowCount, 1, row, 1, sheet.getRowCount() - row - ranges[0].rowCount, 7, GC.Spread.Sheets.CopyToOptions.all);
  11.                     }
  12.                 }
  13.             }
复制代码


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