web-dev-qa-db-ja.com

EPPlusでの列の固定(Excel分割関数)

私は、EPPlusで多くの作業を行って、プロジェクトで必要なエクスポートの数に応じたExcelファイルを生成しています。彼らが望むほとんどの輸出は、彼らが彼らのレガシーシステムですでに持っている輸出と完全に一致する傾向があります。ただし、そのうちの1つは別のものを求めています。彼らは、それをレガシーシステムからのエクスポートの1つとまったく同じように見せたいと思っていますいくつかの典型的で具体的な編集を行った後

ただし、一部の編集では、各行が必要以上に長くなるため、列情報の一部を画面上に固定しておき、残りの列は通常どおりにスクロールできます。 (つまり、Excelの分割関数)。 ws.Column(6).Style.Locked = trueを使用して列をロックしようとしましたが、機能しないようです。また、セル範囲のLockedプロパティをtrueに設定しようとしましたが、これも機能しません。

カラムを固定するにはどうすればよいですか?

34
Corey Adler

EPPlusには、Worksheetと呼ばれるFreezePanesオブジェクト自体でそれを行うための組み込み関数があることがわかります。この関数には2つのパラメーターがあり、どちらもintです:行と列。これを行うと、ワークシートを表示しているときに、ロックしたい行または列が固定されます。

EPPlus Webサイトの例の1つがそれを使用していますが、例の主な焦点ではありません/その例は here here のようになります。

ただし、この関数には注意すべき点が1つあります。行または列のパラメーターに使用する数値は、実際には最初の列[ 〜#〜]ない[〜#〜]その場で凍結。つまり、最初の5列を凍結する場合は、次の呼び出しを行う必要があります。

ws.View.FreezePanes(1,6)(6は固定されていない最初の列です)

62
Corey Adler

@ IronMan84の提案を使用するときに、行ではなく列にのみ関心がある場合に気付きました。使用できます

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