Автофильтр EPPlus работает только на последней ячейке - программирование
Подтвердить что ты не робот

Автофильтр EPPlus работает только на последней ячейке

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

Например, если я прокомментирую команду autofilter для K1, электронная таблица будет создана с C1, являющейся единственной ячейкой с автофильтром.

        //Headers
        ws.Cells["A1"].Value = "ChannelCode";
        ws.Cells["A1"].AutoFilter = true;
        ws.Cells["B1"].Value = "DrmTerrDesc";
        ws.Cells["B1"].AutoFilter = true;
        ws.Cells["C1"].Value = "IndDistrnId";
        ws.Cells["C1"].AutoFilter = true;
        ws.Cells["D1"].Value = "StateCode";
        ws.Cells["D1"].AutoFilter = true;
        ws.Cells["E1"].Value = "ZipCode";
        ws.Cells["E1"].AutoFilter = true;
        ws.Cells["F1"].Value = "EndDate";
        ws.Cells["F1"].AutoFilter = true;
        ws.Cells["G1"].Value = "EffectiveDate";
        ws.Cells["G1"].AutoFilter = true;
        ws.Cells["H1"].Value = "LastUpdateId";
        ws.Cells["H1"].AutoFilter = true;
        ws.Cells["I1"].Value = "ErrorCodes";
        ws.Cells["I1"].AutoFilter = true;
        ws.Cells["J1"].Value = "Status";
        ws.Cells["J1"].AutoFilter = true;
        ws.Cells["K1"].Value = "Id";
        ws.Cells["K1"].AutoFilter = true;
4b9b3361

Ответ 1

EPPlus .AutoFilter немного глючит... Я предлагаю сделать это, используя диапазон, подобный этому:

ws.Cells["A1:K1"].AutoFilter = true;

Ответ 2

Для всех диапазонов данных листа

worksheet.Cells[worksheet.Dimension.Address].AutoFilter=true;

Ответ 3

Этот код должен помочь. Я попробовал и протестировал его.

ws.AutoFilterAddress = new ExcelAddressBase(ws.Dimension.Address);