web-dev-qa-db-ja.com

EPPlusで(行ではなく)列をフィルタリングするにはどうすればよいですか?

特定の列の行のフィルタリングは、EPPlusのパイと同じくらい簡単です。

private ExcelWorksheet prodUsageWorksheet;
. . .
prodUsageWorksheet.Cells["A6:A6"].AutoFilter = true;

これにより、列Aの行をフィルタリングできます。

enter image description here

また、月の列など、特定の列を除外する必要があります(スクリーンショットでは、9月15日と10月15日ですが、通常はさらにいくつかあります)。たとえば、EPPlusを使用してプログラムで次を生成したいとします。

enter image description here

[すべて選択]の選択を解除し、月のサブセットを選択してから[OK]ボタンをクリックすると、選択されていない月が折りたたまれます。

いくつかのレガシーExcel相互運用コードを見ると、次のように実行されているように見えます。

fld = ((PivotField) pvt.PivotFields("Month"));
fld.Orientation = XlPivotFieldOrientation.xlColumnField;
fld.NumberFormat = "MMM yy";

具体的には、コードの2番目のブロック(方向がxlColumnFieldに設定されている)は、操作されるとさまざまな列を条件付きで表示/非表示にする並べ替え/フィルターボタンを備えた列です。

数値形式に基づいて、どの列を表示/非表示にできるかを決定しますか?つまり、値が「9月15日」または「10月16日」の場合はどうでしょうか。

わかりませんが、列フィルタリングの制限をより具体的に設定しているコードには他に何も表示されません。

とにかく、これがExcel Interopがそれを達成する方法である場合、EPPlusで同等のものは何ですか?

18
B. Clay Shannon

これは別の投稿で尋ねられました。また、列フィルタリングはより「動的な」エンドユーザー機能であるため、これはEPPlusが意図したものではありません。

これを見て、それがあなたの質問に答えるかどうかを確認してください:

列に特定のオートフィルターを追加する

2
user3089358