Skip to content

Commit

Permalink
fix(sheet): formula ref move (#1359)
Browse files Browse the repository at this point in the history
* fix(sheet): formula ref move

* fix(sheet): fit for range
  • Loading branch information
DR-Univer committed Feb 19, 2024
1 parent 072e0de commit 65e64bf
Showing 1 changed file with 33 additions and 14 deletions.
Expand Up @@ -468,8 +468,8 @@ export class UpdateFormulaController extends Disposable {
if (!params) return null;

const {
fromRange: { startRow: fromRow },
toRange: { startRow: toRow },
fromRange: { startRow: fromStartRow, endRow: fromEndRow },
toRange: { startRow: toStartRow, endRow: toEndRow },
} = params;

const workbook = this._currentUniverService.getCurrentUniverSheetInstance();
Expand All @@ -478,16 +478,16 @@ export class UpdateFormulaController extends Disposable {
const sheetId = worksheet.getSheetId();

const from = {
startRow: fromRow,
startRow: fromStartRow,
startColumn: 0,
endRow: fromRow,
endRow: fromEndRow,
endColumn: worksheet.getColumnCount() - 1,
rangeType: RANGE_TYPE.ROW,
};
const to = {
startRow: toRow,
startRow: toStartRow,
startColumn: 0,
endRow: toRow,
endRow: toEndRow,
endColumn: worksheet.getColumnCount() - 1,
rangeType: RANGE_TYPE.ROW,
};
Expand All @@ -506,8 +506,8 @@ export class UpdateFormulaController extends Disposable {
if (!params) return null;

const {
fromRange: { startColumn: fromCol },
toRange: { startColumn: toCol },
fromRange: { startColumn: fromStartCol, endColumn: fromEndCol },
toRange: { startColumn: toStartCol, endColumn: toEndCol },
} = params;

const workbook = this._currentUniverService.getCurrentUniverSheetInstance();
Expand All @@ -517,16 +517,16 @@ export class UpdateFormulaController extends Disposable {

const from = {
startRow: 0,
startColumn: fromCol,
startColumn: fromStartCol,
endRow: worksheet.getRowCount() - 1,
endColumn: fromCol,
endColumn: fromEndCol,
rangeType: RANGE_TYPE.COLUMN,
};
const to = {
startRow: 0,
startColumn: toCol,
startColumn: toStartCol,
endRow: worksheet.getRowCount() - 1,
endColumn: toCol,
endColumn: toEndCol,
rangeType: RANGE_TYPE.COLUMN,
};

Expand Down Expand Up @@ -1365,6 +1365,7 @@ export class UpdateFormulaController extends Disposable {
startColumn: fromStartColumn,
endRow: fromEndRow,
endColumn: fromEndColumn,
rangeType: fromRangeType = RANGE_TYPE.NORMAL,
} = from;

const { startRow: toStartRow, startColumn: toStartColumn, endRow: toEndRow, endColumn: toEndColumn } = to;
Expand Down Expand Up @@ -1394,6 +1395,8 @@ export class UpdateFormulaController extends Disposable {
} else if (endRow >= originEndRow && toStartRow <= originEndRow) {
newRange.startRow = fromEndRow + 1;
newRange.endRow = endRow;
} else if (toStartRow > originEndRow) {
newRange.endRow -= fromEndRow + 1 - originStartRow;
} else {
return;
}
Expand All @@ -1409,6 +1412,8 @@ export class UpdateFormulaController extends Disposable {
} else if (startRow <= originStartRow && toEndRow >= originStartRow) {
newRange.endRow = fromStartRow + 1;
newRange.startRow = startRow;
} else if (toEndRow < originStartRow) {
newRange.startRow += originEndRow - fromStartRow + 1;
} else {
return;
}
Expand All @@ -1424,6 +1429,8 @@ export class UpdateFormulaController extends Disposable {
} else if (endColumn >= originEndColumn && toStartColumn <= originEndColumn) {
newRange.startColumn = fromEndColumn + 1;
newRange.endColumn = endColumn;
} else if (toStartColumn > originEndColumn) {
newRange.endColumn -= fromEndColumn + 1 - originStartColumn;
} else {
return;
}
Expand All @@ -1439,6 +1446,8 @@ export class UpdateFormulaController extends Disposable {
} else if (startColumn <= originStartColumn && toEndColumn >= originStartColumn) {
newRange.endColumn = fromStartColumn + 1;
newRange.startColumn = startColumn;
} else if (toEndColumn < originStartColumn) {
newRange.startColumn += originEndColumn - fromStartColumn + 1;
} else {
return;
}
Expand All @@ -1450,6 +1459,18 @@ export class UpdateFormulaController extends Disposable {
newRange.startColumn = startColumn;
newRange.endRow = endRow;
newRange.endColumn = endColumn;
} else if (fromStartColumn <= originStartColumn && fromEndColumn >= originEndColumn) {
if (toStartRow > originEndRow) {
newRange.endRow -= fromEndRow - fromStartRow + 1;
} else if (toEndRow < originStartRow) {
newRange.startRow += fromEndRow - fromStartRow + 1;
}
} else if (fromStartRow <= originStartRow && fromEndRow >= originEndRow) {
if (toStartColumn > originEndColumn) {
newRange.endColumn -= fromEndColumn - fromStartColumn + 1;
} else if (toEndColumn < originStartColumn) {
newRange.startColumn += fromEndColumn - fromStartColumn + 1;
}
} else if (
((toStartColumn <= remainEndColumn + 1 && toEndColumn >= originEndColumn) ||
(toStartColumn <= originStartColumn && toEndColumn >= remainStartColumn - 1)) &&
Expand All @@ -1475,8 +1496,6 @@ export class UpdateFormulaController extends Disposable {
return newRange;
}

private _getInsertNewRange() {}

private _getCurrentSheetInfo() {
const workbook = this._currentUniverService.getCurrentUniverSheetInstance();
const unitId = workbook.getUnitId();
Expand Down

0 comments on commit 65e64bf

Please sign in to comment.