【问题标题】:Changing sheet displayed with ClosedXML更改使用 ClosedXML 显示的工作表
【发布时间】:2016-03-03 20:27:07
【问题描述】:

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

wb.Worksheet(1).Select();

这会选择工作表中的所有单元格,但不会改变视图。

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

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

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

【问题讨论】:

  • 您需要查看以下wb.ActiveTab 对以下How to set active sheet with Open XML 进行谷歌搜索
  • 啊,或者在 ClosedXML 的情况下,SetTabActive()
  • 而 wb.TabActive 将为您提供活动工作表。只需将其与工作表列表循环并匹配布尔值

标签: c# excel closedxml


【解决方案1】:

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

wb.Worksheet(1).SetTabActive();

【讨论】:

    【解决方案2】:

    我发现 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多