在多个工作表中冻结窗格C#

我正在MS Excel 2013中生成报告,其中工作簿中的所有工作表都应该在第6列和第1行有冻结窗格。我已经在Google上search,但找不到冻结窗格的任何解决scheme,工作簿必须是活动的。 我尝试了很多东西,但没有成功。 如果有人能帮助我,我将不胜感激。

Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open("filelocation"); foreach (Excel.Worksheet ws in workbook.Worksheets) { ws.Application.ActiveWindow.SplitColumn = 6; ws.Application.ActiveWindow.SplitRow = 1; ws.Application.ActiveWindow.FreezePanes = true; } excel.Visible = true; 

我希望它帮助别人。 我已经使用Excel的ClosedXML库和创build每个工作表后,我使用

 worksheet.SheetView.Freeze(1,6); 

这会冻结第1行,第6列。您可以冻结任何行/列。 这里是到ClosedXML的链接。 它得到了广泛的支持和非常好的文档。

要冻结每个工作表上的窗格,您需要修改for循环以添加一行来激活当前表单,然后设置其他属性。 这是我的解决scheme:

 Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open("filelocation"); foreach (Excel.Worksheet ws in workbook.Worksheets) { ws.Activate(); ws.Application.ActiveWindow.SplitColumn = 6; ws.Application.ActiveWindow.SplitRow = 1; ws.Application.ActiveWindow.FreezePanes = true; } excel.Visible = true;