在EPPlus中冻结列(Excel拆分功能)

Iro*_*n84 33 c# excel export epplus

我一直在与EPPlus合作,为我的项目要求我做的导出数量生成Excel文件.他们想要的大多数出口往往与他们在遗留系统中已经存在的出口完美匹配.然而,其中之一,他们想要不同.他们希望它在完成一些典型和特定的编辑后,看起来就像遗留系统中的一个导出.

但是,他们所做的一些编辑会使每一行比他们希望的更长,因此他们希望将一些列信息锁定在屏幕上,而其余列可以正常滚动(即Excel的分割功能).我试过锁定列ws.Column(6).Style.Locked = true,但似乎没有用.我也尝试将单元格范围的Locked属性设置为true,但这也没有用.

如何将柱子冻结到位?

Iro*_*n84 61

事实证明,EPPlus有一个内置函数,用于在Worksheet被调用的对象上执行此操作FreezePanes.该函数有2个参数,两个参数都是int:行和列.执行此操作将在查看工作表时冻结您希望锁定到位的行或列.

EPPlus网站上的一个例子使用它,虽然它不是示例的主要焦点/该示例可以在这里找到.

有一个疑难杂症具有此功能,你应该知道,虽然:您使用的行或列参数的数量实际上是第一列到位冻结.换句话说,如果您希望冻结前5列,则必须进行以下调用:

ws.View.FreezePanes(1,6) (其中6是未冻结的第一列)


Ton*_*nto 9

我意识到当使用@ IronMan84的建议时,如果你只对行而不是列感兴趣.您可以使用

ws.View.FreezePanes(3, 1); // (Freeze Row 2 and no column)
Run Code Online (Sandbox Code Playgroud)