[英]Freeze Panes in multiple worksheets C#
I am working on MS Excel 2013 generating report where all the worksheets in workbook should have freeze pane at column 6 and row 1. I have searched on Google but could not find any solution as for freezing the pane, workbook has to be active. 我正在研究MS Excel 2013生成报告,其中工作簿中的所有工作表都应该在第6列和第1行有冻结窗格。我在Google上搜索但是找不到任何解决方案,因为冻结窗格,工作簿必须处于活动状态。 I have tried a lot of things but no success.
我尝试了很多但没有成功。 I will really appreciate if someone can help me.
如果有人能帮助我,我将非常感激。
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;
I Hope it help others. 我希望它可以帮助别人。 I have used ClosedXML Library for Excel and after creating each worksheet I used
我使用了ClosedXML Library for Excel,并在创建了我使用的每个工作表之后
worksheet.SheetView.Freeze(1,6);
This freezes the Row 1, Col 6. You can freeze any row/column. 这会冻结第1行,第6行。您可以冻结任何行/列。 Here is link to ClosedXML .
这里是ClosedXML的链接。 It's widely supported and very good documentation.
它得到了广泛的支持和非常好的文档。
To freeze the panes on each worksheet you need to modify your for loop to add a line to activate the current sheet prior to setting the other properties. 要冻结每个工作表上的窗格,您需要修改for循环以添加一行以在设置其他属性之前激活当前工作表。 Here is my solution:
这是我的解决方案:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.