找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-23 11:28  /   查看:872  /  回复:0
本帖最后由 Lynn.Dou 于 2023-4-25 14:13 编辑

背景:

用户想实现移动chart到其他sheet功能,熟悉组件版设计器的小伙伴很容易想到,工具栏是待有此功能的,如下图:
image.png98341063.png
其UI行为是与Excel保持一致的,也更符合用户的操作习惯。

在某些场景下,用户希望可以不通过工具栏,而是通过代码实现,
那么可以参考下下面的代码,通过cutFloatingObjects和pasteFloatingObjects实现。
  1. spread.suspendPaint();
  2. var sheet1 = spread.getSheet(0);
  3. var sheet2 = spread.getSheet(1);
  4. // 获取sheet1中的chart
  5. var chart1 = sheet1.charts.all()[0];
  6. // 获取chart的xy坐标
  7. var x = chart1.x();
  8. var y = chart1.y();
  9. // 选中chart
  10. chart1.isSelected(true);
  11. // 剪切sheet1 中的chart
  12. spread.commandManager().execute({cmd: "cutFloatingObjects", sheetName: "Sheet1"});
  13. // 粘贴至sheet2中
  14. spread.commandManager().execute({cmd: "pasteFloatingObjects", sheetName: "Sheet2"});
  15. // 获取chart2中的chart,并调整xy坐标
  16. var chart2 = sheet2.charts.all()[0];
  17. chart2.x(x);
  18. chart2.y(y);
  19. spread.setActiveSheetIndex(1);
  20. spread.resumePaint()
复制代码

看看效果:

image.png223359984.png

附件为示例demo,供参考。

移动chart至其他sheet.html

4.74 KB, 下载次数: 9

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部