在处理大型excel工作簿时,有时候我们需要在工作表中冻结窗格,这样可以在滚动查看数据的同时保持某些行或列固定不动。冻结窗格可以帮助我们更容易地导航和理解复杂的数据集。相反,当你不需要冻结窗格时,你可能需要解冻它们以获得完整的视野。
下面将介绍如何使用免费.net库通过c#实现冻结excel窗口以锁定行和列,以及如何解除冻结。
免费.net excel库
本文提供的实现方案需要用到 free spire.xls for .net 这个免费库。该库可以在 .net 应用程序中快速实现对 excel 文档的各种操作。可以通过nuget直接安装,或者下载后手动引用dll。
pm> install-package freespire.xls
c# 冻结excel窗口(冻结首行、首列、多行多列)
free spire.xls for .net免费库提供了 worksheet.freezepanes(int rowindex, int columnindex) 方法来冻结excel行和列。其中的两个参数:
- rowindex: 表示行的索引 (索引从1开始),在该行之上的所有行将被冻结。
- columnindex: 表示列的索引(索引从1开始),在该列左边的所有列将被冻结。
因此,要冻结首行即为freezepanes(2, 1),冻结首列为freezepanes(1, 2),同时冻结首行首列为freezepanes(2, 2),以此类推。
以下为冻结excel行或列的c#示例代码:
using spire.xls;
namespace freezetoprow
{
class program
{
static void main(string[] args)
{
//加载excel文档
workbook workbook = new workbook();
workbook.loadfromfile(@"c:\users\administrator\desktop\测试.xlsx");
//获取第一张工作表
worksheet sheet = workbook.worksheets[0];
//冻结首行
sheet.freezepanes(2, 1);
//冻结首列
//sheet.freezepanes(1, 2);
//冻结首行首列
//sheet.freezepanes(2, 2);
//冻结前三行
//sheet.freezepanes(4, 1);
//保存文件
workbook.savetofile("冻结excel行列.xlsx", excelversion.version2016);
}
}
}c# 解除冻结excel行和列
要解除冻结,直接使用 worksheet.removepanes() 方法即可,示例代码如下:
using spire.xls;
namespace unfreezeexcelpane
{
class program
{
static void main(string[] args)
{
//加载excel文件
workbook workbook = new workbook();
workbook.loadfromfile("冻结行列.xls");
//获取第一张工作表
worksheet sheet = workbook.worksheets[0];
//解冻工作表中的行或列
sheet.removepanes();
//保存文件
workbook.savetofile("解冻excel行列.xlsx", excelversion.version2016);
}
}
}到此这篇关于c#实现冻结excel窗口以锁定行列或解除冻结的文章就介绍到这了,更多相关c#冻结excel窗口内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论