哪个API可以实现插入 - 活动单元格下移(40807)
本帖最后由 Lynn.Dou 于 2022-2-14 14:21 编辑哪个API可以实现插入 - 活动单元格下移
您好,
目前原生上未提供接口,不能直接使用相关功能。
您可以先参考下方文章自定义实现。
(注:该文章仅供参考,未完整考虑相关场景)
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=136504
这边已将此问题记录至产品需求库中,如果后续计划添加此功能,会在本贴通知您。 Lynn.Dou 发表于 2022-2-9 14:57
您好,
目前原生上未提供接口,不能直接使用相关功能。
您可以先参考下方文章自定义实现。
感觉很需要这个API:lol 相关需求已提交,如果后续有计划实现,会在贴中及时通知您。
您可以先参考前面提供的教程,看能否满足现有需求。 Lynn.Dou 发表于 2022-2-9 17:23
相关需求已提交,如果后续有计划实现,会在贴中及时通知您。
您可以先参考前面提供的教程,看能否满足现有 ...
您好,根据给的例子,单元格向上移动后,如果本来下面的单元格有内容,则出现如下的现象
详细代码如下:
本帖最后由 Lynn.Dou 于 2022-2-15 12:13 编辑
如前面回复所说,上述示例未做完整场景测试,仅作参考作用。
如果不能满足您现有的需求,建议您先勿直接使用此demo功能,这边根据您提供的demo调研下原因。
如后续版本有计划添加此需求,会在本贴通知您。
本帖最后由 Lynn.Dou 于 2022-2-15 11:31 编辑
啥?研究了两天,做了一个实例,然后给这个回复的??? 本帖最后由 Lynn.Dou 于 2022-5-24 11:12 编辑
关于此需求电话中做了大致介绍,具体测试demo发现,
如果通过 正常绘制边框、setValue赋值的方式设计表格,是可以正常“上移的”。
如附件demo所示。
您demo中数据 是经过 复制-绑定数据源-setValue赋值 等最终生成的,所以可能是哪一环节造成的了此问题。
具体原因需进一步调研,不排除是moveto方法的局限性。
本贴先做保留处理,待有进展会在贴中更新。(SJS-11880)
(更新进展:此问题已在V15.1.0修复) Lynn.Dou 发表于 2022-2-15 12:08
关于此需求电话中做了大致介绍,具体测试demo发现,
如果通过 正常绘制边框、setValue赋值的方式设计表格 ...
将moveTo的API改成以下方法,暂时可以解决我的问题:
1、先将要删除的单元格清空
2、对下面的单元格进行剪切粘贴
sheet.clear(row, 2, ranges.rowCount, 7, 3, 32 /* Axis */ | 64 /* BindingPath */ | 1 /* Data */ | 16 /* Sparkline */ | 2 /* Style */ | 4 /* Comment */);
if (row + ranges.rowCount !== sheet.getRowCount()) {
self.spread.commandManager().execute({
cmd: "clipboardPaste",
sheetName: sheet.name(),
fromSheet: sheet,
fromRanges: .rowCount, 2, sheet.getRowCount() - row - ranges.rowCount, 7)],
pastedRanges: .rowCount, 7)],
isCutting: true,
clipboardText: "",
pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all
});
} :hjyzw:,感谢分享方案。
初步调研,该问题是由 value 和 bindingPath 之间的 moveTo 执行顺序引起的,正在进一步调研解决方案中。
您也可以参考以下workaround方案:
cellButtonStyle.cellButtons.command = (sheet, row, col, option) => {
let ranges = sheet.getSpans(new GC.Spread.Sheets.Range(row,col,1,1));
if(ranges.length){
if (row + ranges.rowCount == sheet.getRowCount()) {
sheet.clear(row, 1, ranges.rowCount, 7, 3, 32 /* Axis */ | 64 /* BindingPath */ | 1 /* Data */ | 16 /* Sparkline */ | 2 /* Style */ | 4 /* Comment */);
} else {
// 先清除覆盖范围
sheet.clear(row, 1, ranges.rowCount, 7, 3, 32/* Axis */ | 64/* BindingPath */ | 1/* Data */ | 16/* Sparkline */ | 2/* Style */ | 4/* Comment */);
// 再执行moveTo方法
sheet.moveTo(row + ranges.rowCount, 1, row, 1, sheet.getRowCount() - row - ranges.rowCount, 7, GC.Spread.Sheets.CopyToOptions.all);
}
}
}
页:
[1]
2