C# 更改使用ClosedXML显示的工作表

C# 更改使用ClosedXML显示的工作表,c#,excel,closedxml,C#,Excel,Closedxml,我正在使用ClosedXML动态创建包含多张工作表的Excel工作簿。生成内容后,我正在努力将选定的工作表更改回工作簿中的第一张工作表,但在文档中找不到有关如何更改显示的工作表的任何内容。我试过: wb.Worksheet(1).Select(); 这将选择工作表中的所有单元格,但不会更改回视图 wb.Worksheet(1).Cells(1,1).Value = wb.Worksheet(1).Cells(1,1).Value 似乎设置了值,但同样不会更改视图 我曾尝试隐藏其他工作表,希望

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

wb.Worksheet(1).Select();
这将选择工作表中的所有单元格,但不会更改回视图

wb.Worksheet(1).Cells(1,1).Value = wb.Worksheet(1).Cells(1,1).Value
似乎设置了值,但同样不会更改视图


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

使用ClosedXML将活动工作表设置为第一个工作表。您可以使用以下代码:

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);

您需要查看以下
wb.ActiveTab
对以下
如何使用Open XML设置活动工作表进行谷歌搜索
ahhh,如果是ClosedXML,则使用SetTabActive()