From b463fef769b44f7a1df96c2e30c8aa84f401a3a6 Mon Sep 17 00:00:00 2001 From: wpxp123456 <2677556700@qq.com> Date: Thu, 15 Jan 2026 17:00:31 +0800 Subject: [PATCH] fix(paste): optimize copy and paste mutations (#6472) --- .../src/controllers/clipboard/utils.ts | 36 ++++++++++--------- .../services/clipboard/clipboard.service.ts | 4 ++- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/packages/sheets-ui/src/controllers/clipboard/utils.ts b/packages/sheets-ui/src/controllers/clipboard/utils.ts index e69a572211..e85917ee67 100644 --- a/packages/sheets-ui/src/controllers/clipboard/utils.ts +++ b/packages/sheets-ui/src/controllers/clipboard/utils.ts @@ -672,24 +672,26 @@ export function getClearAndSetMergeMutations( Rectangle.intersects({ startRow, startColumn, endRow, endColumn }, rect) ); - const removeMergeMutationParams: IRemoveWorksheetMergeMutationParams = { - unitId, - subUnitId, - ranges: mergedCellsInRange, - }; - redoMutationsInfo.push({ - id: RemoveWorksheetMergeMutation.id, - params: removeMergeMutationParams, - }); + if (mergedCellsInRange.length > 0) { + const removeMergeMutationParams: IRemoveWorksheetMergeMutationParams = { + unitId, + subUnitId, + ranges: mergedCellsInRange, + }; + redoMutationsInfo.push({ + id: RemoveWorksheetMergeMutation.id, + params: removeMergeMutationParams, + }); - const undoRemoveMergeMutationParams: IAddWorksheetMergeMutationParams = RemoveMergeUndoMutationFactory( - accessor, - removeMergeMutationParams - ); - undoMutationsInfo.push({ - id: AddWorksheetMergeMutation.id, - params: undoRemoveMergeMutationParams, - }); + const undoRemoveMergeMutationParams: IAddWorksheetMergeMutationParams = RemoveMergeUndoMutationFactory( + accessor, + removeMergeMutationParams + ); + undoMutationsInfo.push({ + id: AddWorksheetMergeMutation.id, + params: undoRemoveMergeMutationParams, + }); + } } if (mergeRangeData.length > 0) { diff --git a/packages/sheets-ui/src/services/clipboard/clipboard.service.ts b/packages/sheets-ui/src/services/clipboard/clipboard.service.ts index ab4cbb8c7d..7d77fbee1f 100644 --- a/packages/sheets-ui/src/services/clipboard/clipboard.service.ts +++ b/packages/sheets-ui/src/services/clipboard/clipboard.service.ts @@ -930,6 +930,8 @@ export class SheetClipboardService extends Disposable implements ISheetClipboard } const rowManager = worksheet.getRowManager(); + const defaultRowHeight = worksheet.getConfig().defaultRowHeight; + const { rows, cols } = pastedRange; const pasteRangeStartRow = rows[0]; const pasteRangeEndRow = rows[rows.length - 1]; @@ -948,7 +950,7 @@ export class SheetClipboardService extends Disposable implements ISheetClipboard startColumn: pasteRangeStartColumn, endColumn: pasteRangeEndColumn, }, - ]); + ]).filter((info) => info.autoHeight !== defaultRowHeight); needAutoHeight.push(...autoHeight); } }