冻结EPPlus中的列(Excel分割function)

我一直在使用EPPlus进行大量工作,以生成Excel文件,以获取项目所需的导出数量。 他们想要的大部分出口往往与他们已有的出口产品完全匹配。 其中之一,但是,他们想要不同的。 他们希望在完成一些典型的和特定的编辑之后,它看起来就像传统系统中的一个出口。

但是,他们所做的某些编辑使得每一行都比他们想要的要长,所以他们希望保留一些列信息locking在屏幕上,而其余的列可以正常滚动(即Excel的分割function)。 我试着用ws.Column(6).Style.Locked = truelocking列,但是这似乎不工作。 我也尝试设置一个单元格区域的Locked属性为true,但也没有奏效。

我怎样才能冻结列?

事实certificate,EPPlus具有一个内置函数,可以在Worksheet对象本身上执行,名为FreezePanes 。 这个函数有两个参数,都是int :Row和Column。 这样做会冻结在查看工作表时希望locking的任何行或列。

EPPlus网站上的例子之一就是使用它,尽pipe这不是示例的主要焦点/这个例子可以在这里find 。

有一个这个函数的问题,你应该知道,但是:你用于行或列参数的数字实际上是第一个没有被冻结的列 。 换句话说,如果你想要冻结前5列,你必须进行以下调用:

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

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

 ws.View.FreezePanes(3, 1); // (Freeze Row 2 and no column)