EPPlus对生成的表进行排序

时间:2019-05-14 18:10:31

标签: epplus

一旦我通过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 个答案:

答案 0 :(得分:1)

您可以对表格进行排序

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

{0,1,2}表示表的第一,第二和第三列(不一定是工作表)

不幸的是,似乎没有办法判断标题是否存在,因此标题会深入表中。

如果您设法在没有第一行的情况下对表格进行排序,您应该会成功,但是我的大脑目前无法处理。

答案 1 :(得分:0)

由于您知道有标题,并且可以从其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 });