EPPlus сортировать сгенерированную таблицу - PullRequest
1 голос
/ 14 мая 2019

Как только я сгенерировал свою таблицу через EPPlus, как мне сказать, что я хочу, чтобы она автоматически сортировалась по столбцам?Я хотел бы сказать, что нужно отсортировать по столбцу A, затем B, затем C.

Я создаю таблицу примерно так:

internal static void MakeItATable(this ExcelWorksheet ws, string tableName = "Table1")
{
    var addr = new ExcelAddressBase(ws.Dimension.Address);
    var tbl = ws.Tables.Add(addr, tableName);
    tbl.ShowHeader = true;
    ws.Cells[ws.Dimension.Address].AutoFitColumns();
}

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Вы можете отсортировать таблицу с помощью

ws.Cells[tbl.Address.Address].Sort(new[] { 0, 1, 2});

с {0, 1, 2} означает первый, второй и третий столбец таблицы (необязательно рабочий лист)

К сожалению, похоже, нет никакой возможности определить, присутствуют ли заголовки или нет, поэтому заголовки погружаются в таблицу.

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

0 голосов
/ 18 мая 2019

Поскольку вы знаете, что заголовок существует, и вы знаете размеры таблицы по ее Address, вы можете просто сказать EPPlus пропустить первую строку:

var s = tbl.Address.Start;
var e = tbl.Address.End;

//Add 1 to skip the header
ws.Cells[s.Row + 1, s.Column, e.Row, e.Column].Sort(new[] { 0, 1, 2 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...