2016-10-07 7 views
17

Фильтрация строк в определенном столбце так же легко, как пирог в EPPlus:Как фильтровать столбцы (а не строки) в EPPlus?

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

Это позволяет мне отфильтровать строки в столбце A:

enter image description here

Я также необходимо фильтровать определенные столбцы например, столбцы месяца (на снимке экрана, 15 сентября и 15 октября, но, как правило, несколько больше). Например, я хочу, чтобы генерировать программно следующие с EPPlus:

enter image description here

Deselecting «Select All», выбор подмножества месяцев, а затем нажав на кнопку OK делает в один [S] не выбран коллапс.

Глядя на какой-то унаследованной Excel Interop код, казалось бы, что там, это делается так:

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

В частности, второй блок кода (с ориентацией, установленным в xlColumnField) является столбец, управляет кнопкой сортировки/фильтра, которая при манипулировании условно отображает/скрывает различные столбцы.

Определяет, какие столбцы могут быть отображены/спрятаны на основе формата чисел? То есть, если значение «Сен 15» или «16 октября»?

Я не знаю, но я не вижу ничего другого в коде, который более конкретно устанавливает пределы фильтрации столбцов.

Во всяком случае, если это так, как это делает Excel Interop, что эквивалентно в EPPlus?

+2

Вы, наверное, уже проверили [это] (http://stackoverflow.com/questions/32723483/adding-a -специфический-автофильтр-на-столбце), но похоже, что вы EPPlus не способны изначально добавлять фильтры столбцов. Ссылка действительно обеспечивает обходной путь, но я не думаю, что это соответствует вашему делу. – Innat3

+1

Да, я увидел это, спасибо; к сожалению, к этому я вынужден вернуться к Excel Interop. Это как резервирование Troggs, когда Rolling Stones недоступны, потому что Stones отказываются играть в «Wild Thang!» –

+2

Да, я собирался предложить мигрировать в библиотеку Interop. Я чувствую вашу боль:/ – Innat3

ответ

1

Это было задано в другом сообщении. Кроме того, это не то, для чего предназначен EPPlus, поскольку фильтрация столбцов - это более функциональная функция «Динамический».

Взгляните на это и посмотреть, если он отвечает на ваш вопрос:

Adding a specific autofilter on a column

+0

Должен быть комментарий, а не ответ, на мой взгляд. –

+0

Согласитесь с комментарием о ответе; Для этого я использовал Aspose Cells; он может делать сводные таблицы - как вы можете с помощью Excel Interop - но со скоростью, которая делает ячейки Aspose: коэффициент взаимодействия Interop Excel выглядит как гепард: меласса –