更改使用 ClosedXML 显示的 sheet

Changing sheet displayed with ClosedXML

我正在使用 ClosedXML 动态创建一个包含多个 sheet 的 Excel 工作簿。在我完成生成内容后,我正在努力将 sheet selected 改回工作簿中的第一个 sheet,但在文档中找不到有关如何更改 [=23] 的任何内容=] 显示。我试过:

wb.Worksheet(1).Select();

这select作品中的所有单元格sheet,但它不会改变视图。

wb.Worksheet(1).Cells(1,1).Value = wb.Worksheet(1).Cells(1,1).Value

似乎设置了值,但同样没有改变视图。

我曾尝试隐藏其他 sheets,希望它会自动 select 可见的 sheets,但这似乎不起作用。有什么建议吗?

使用 ClosedXML 将活动 Sheet 设置为第一个工作表,将使用此代码:

wb.Worksheet(1).SetTabActive();

我发现 Andrew K 的解决方案没有取消选择之前选择的选项卡。我也写了这个扩展来满足这个要求:

public static class Extensions
{
    public static void SetActiveSheet(this XLWorkbook workbook, IXLWorksheet sheetToSetActive)
    {
        foreach (var sheet in workbook.Worksheets)
        {
            var isCurrentSheet = sheet.Equals(sheetToSetActive);
            sheet.SetTabActive(isCurrentSheet);
            sheet.SetTabSelected(isCurrentSheet);
        }
    }
}

使用方法如下:

var sheetToSetActive = wb.Worksheet(1);
wb.SetActiveSheet(sheetToSetActive);