From 2ee078f8a2c33ed8ec06b7c0d3a8391cce2538fb Mon Sep 17 00:00:00 2001 From: DR-Univer Date: Mon, 11 Mar 2024 11:35:47 +0800 Subject: [PATCH 1/2] fix(sheet): first sheet hidden --- packages/core/src/sheets/workbook.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/core/src/sheets/workbook.ts b/packages/core/src/sheets/workbook.ts index 58ee60e87f6..4ff0d081264 100644 --- a/packages/core/src/sheets/workbook.ts +++ b/packages/core/src/sheets/workbook.ts @@ -204,13 +204,22 @@ export class Workbook extends Disposable { */ getActiveSheet(): Worksheet { const currentActive = this.getRawActiveSheet(); - if (!currentActive) { - const worksheet = this._worksheets.get(this._snapshot.sheetOrder[0])!; - this.setActiveSheet(worksheet); - return worksheet; + if (currentActive) { + return currentActive; } - return currentActive; + const sheetOrder = this._snapshot.sheetOrder; + for (let i = 0, len = sheetOrder.length; i < len; i++) { + const worksheet = this._worksheets.get(sheetOrder[i]); + if (worksheet && worksheet.isSheetHidden() !== BooleanNumber.TRUE) { + this.setActiveSheet(worksheet); + return worksheet; + } + } + + const worksheet = this._worksheets.get(sheetOrder[0])!; + this.setActiveSheet(worksheet); + return worksheet; } setActiveSheet(worksheet: Nullable): void { From d6eacb9dfa9507cbe04847d07ad77f07a0545d10 Mon Sep 17 00:00:00 2001 From: DR-Univer Date: Mon, 11 Mar 2024 11:37:01 +0800 Subject: [PATCH 2/2] docs(sheet): add comment --- packages/core/src/sheets/workbook.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/core/src/sheets/workbook.ts b/packages/core/src/sheets/workbook.ts index 4ff0d081264..e5bf7bb09cf 100644 --- a/packages/core/src/sheets/workbook.ts +++ b/packages/core/src/sheets/workbook.ts @@ -208,6 +208,9 @@ export class Workbook extends Disposable { return currentActive; } + /** + * If the first sheet is hidden, we should set the first unhidden sheet to be active. + */ const sheetOrder = this._snapshot.sheetOrder; for (let i = 0, len = sheetOrder.length; i < len; i++) { const worksheet = this._worksheets.get(sheetOrder[i]);