我使用ClosedXML动态创建包含多个工作表的Excel工作簿。在完成生成内容后,我正在努力将选定的工作表更改回工作簿中的第一个工作表,并且在文档中找不到有关如何更改显示的工作表的任何内容。我试过了:
wb.Worksheet(1).Select();
这会选择工作表中的所有单元格,但它不会更改视图。
wb.Worksheet(1).Cells(1,1).Value = wb.Worksheet(1).Cells(1,1).Value
似乎设置了值,但同样不会更改视图。
我已经尝试隐藏其他工作表,希望它会自动选择可见的工作表,但这似乎不起作用。有什么建议吗?
答案 0 :(得分:2)
使用ClosedXML将Active Sheet设置为第一个工作表,将使用此代码:
wb.Worksheet(1).SetTabActive();
答案 1 :(得分:0)
我发现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);