一旦我通过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();
}
答案 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 });