本帖最后由 jackming 于 2020-6-17 15:26 编辑
这个demo可能不太符合,假如我在A列进行了筛选,在B列进行了删除,被筛选出去的行还是会被B列删除
结合您的demo,我自己已经完成了,现在分享一下,感谢- var handleDelete = {
- canUndo: true,
- execute: function (context, options, isUndo) {
- // console.log(context, options, isUndo, context.getActiveSheet().isEditing())
- var Commands = GC.Spread.Sheets.Commands;
- options.cmd = "handleDelete";
- if (isUndo) {
- Commands.undoTransaction(context, options);
- return true;
- } else {
- if (!context.getActiveSheet().isEditing()) {
- Commands.startTransaction(context, options);
- spread.suspendPaint();
- var sheet = context.getActiveSheet();
- var selections = sheet.getSelections();
- for (var i = 0; i < selections.length; i++) {
- var row = selections[i].row == -1 ? 0 : selections[i].row;
- var col = selections[i].col;
- var rowCount = selections[i].rowCount;
- var colCount = selections[i].colCount;
- for (var i = row; i < row + rowCount; i++) {
- if (sheet.getRowVisible(i)) {
- for (var j = col; j < col + colCount; j++) {
- if (!sheet.getCell(i, j).locked()) {
- sheet.clear(i, j, 1, 1, GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.StorageType.data);
- }
- }
- }
- }
- }
- options.cmd = "handleDelete";
- spread.resumePaint();
- Commands.endTransaction(context, options);
- return true;
- } else {
- return false;
- }
- }
- }
- };
复制代码
|