本帖最后由 Lynn.Dou 于 2023-4-25 14:13 编辑
背景:
用户想实现移动chart到其他sheet功能,熟悉组件版设计器的小伙伴很容易想到,工具栏是待有此功能的,如下图:
其UI行为是与Excel保持一致的,也更符合用户的操作习惯。
在某些场景下,用户希望可以不通过工具栏,而是通过代码实现,
那么可以参考下下面的代码,通过cutFloatingObjects和pasteFloatingObjects实现。
- spread.suspendPaint();
- var sheet1 = spread.getSheet(0);
- var sheet2 = spread.getSheet(1);
- // 获取sheet1中的chart
- var chart1 = sheet1.charts.all()[0];
- // 获取chart的xy坐标
- var x = chart1.x();
- var y = chart1.y();
- // 选中chart
- chart1.isSelected(true);
- // 剪切sheet1 中的chart
- spread.commandManager().execute({cmd: "cutFloatingObjects", sheetName: "Sheet1"});
- // 粘贴至sheet2中
- spread.commandManager().execute({cmd: "pasteFloatingObjects", sheetName: "Sheet2"});
- // 获取chart2中的chart,并调整xy坐标
- var chart2 = sheet2.charts.all()[0];
- chart2.x(x);
- chart2.y(y);
- spread.setActiveSheetIndex(1);
- spread.resumePaint()
复制代码
看看效果:
附件为示例demo,供参考。
|
|