runergy 发表于 2023-4-26 10:39:18

删除时右侧单元格左移如何用代码实现(SJS-18118)

本帖最后由 Lynn.Dou 于 2023-5-5 09:11 编辑


Lynn.Dou 发表于 2023-4-26 13:46:31

您好,
删除时右侧单元格左移 等属于designer的功能,SpreadJS并没有相关接口。
designer封装了 Designer.deleteLeftCells 命令,参考下方代码:
spread.commandManager().execute({cmd:"Designer.deleteLeftCells",sheetName:"Sheet1", selections:spread.getActiveSheet().getSelections()});
注意selection要传递正确。
附件为示例demo,供参考。

runergy 发表于 2023-4-26 15:43:20

只能用getSelections嘛,getrange可以嘛

runergy 发表于 2023-4-26 16:24:29

runergy 发表于 2023-4-26 15:43
只能用getSelections嘛,getrange可以嘛

我在vue中用了相同的方法,可以取到getSelections的信息,但是就是删除不了。

<template>
<div>
    <button @click="deleteLeftCells">右侧单元格左移</button>
    <div id="excebox" class="excebox"></div>
</div>
</template>

<script>
import Vue from "vue";
import '@grapecity/spread-sheets-resources-zh';
GC.Spread.Common.CultureManager.culture("zh-cn");
import "@grapecity/spread-sheets-vue";
import GC from "@grapecity/spread-sheets";
export default {
mounted() {
        const spread = new GC.Spread.Sheets.Workbook(
                document.getElementById("excebox"), {
                        sheetCount: 1 //sheet的页数
                }
        );

    const sheet = spread.getActiveSheet();
    sheet.setValue(1, 1, 1);
    sheet.setValue(1, 2, 2);
    sheet.setValue(1, 3, 3);
    sheet.setSelection(1, 2, 1, 1);
    this.spread = spread;
},
methods: {
    deleteLeftCells() {
      this.spread.commandManager().execute({
      cmd: "deleteLeftCells",
      sheetName: "Sheet1",
      selections: this.spread.getActiveSheet().getSelections(),
      });
    },
},
};
</script>


Lynn.Dou 发表于 2023-4-26 16:53:20

您仔细看下示例代码,cmd应为 ”Designer.deleteLeftCells“,并且前面有提到,这是designer的功能,SpreadJS原生上并没有此接口,所以需要引入designer的相关资源。

runergy 发表于 2023-4-26 18:40:30

使用 Designer 后有工具栏,如何隐藏工具栏部分

Lynn.Dou 发表于 2023-4-27 09:36:46

通过css方式修改工具栏dom的display为none,示例如下:
.gc-designer-container .ribbon {
            display: none;
      }
公示栏部分同理

runergy 发表于 2023-5-4 16:20:28

使用下方单元格上移,使用方法为   spread.commandManager().execute({
                                                                cmd: "Designer.deleteUpCells",
                                                                sheetName: "电池片库存分析-悦达",
                                                                selections: sheet2.getSelections()
                                                      });但是结果删除行数过多时,删除的行会串行,
下面使用菜单的功能也是一样的效果,会串行。
如何解决这个问题



Clark.Pan 发表于 2023-5-4 16:26:41

根据电话沟通,猜测是总行数设置的问题,实际上删除已经正常触发并删除内容了,只是下方可能存在其他内容,但因为总行数的限制没有显示全,在删除后将下方的内容顶上来了。

runergy 发表于 2023-5-4 16:58:40

文件
页: [1] 2
查看完整版本: 删除时右侧单元格左移如何用代码实现(SJS-18118)