5

我正在使用EPPlus生成 Excel 工作簿。

我试图弄清楚如何:

  1. 按特定列对工作表进行排序(相当于在 Excel 中单击排序 AZ)或...
  2. 为特定列的自动筛选设置排序顺序
4

4 回答 4

2

EPPlus 无法按列排序:https ://epplus.codeplex.com/workitem/14791

这不是您要求的,但如果这有助于 excel 互操作,您可以按如下所示按列排序:

Worksheet sheet = workBook.Sheets[1];
Range sortRange = sheet.Range["A1", "S100"];
sortRange.Sort(sortRange.Columns[5], Microsoft.Office.Interop.Excel.XlSortOrder.xlDescending);

这将按列 E 对范围 A1:S100 进行排序。

于 2014-01-09T14:02:57.890 回答
2
var startRow = 1;    
var startColumn= 1;
var endRow= 10;
var endColumn= 10;
var sortColumn = 5; //6th Column because index is ZeroBased.
using (ExcelRange excelRange = yourWorkSheet.Cells[startRow, startColumn, endRow, endColumn])
     {
         excelRange.Sort(sortColumn, true);
     }
于 2018-01-09T11:45:05.417 回答
2

Jan Kallman 在 4.5.1 中发布了一种排序方法。你可以看到他在这里展示的一个例子:

https://github.com/JanKallman/EPPlus/issues/78#issuecomment-349650208

    /// Sort the range by value
    /// </summary>
    /// <param name="columns">The column(s) to sort by within the range. Zerobased</param>
    /// <param name="descending">Descending if true, otherwise Ascending. Default Ascending. Zerobased</param>
    /// <param name="culture">The CultureInfo used to compare values. A null value means CurrentCulture</param>
    /// <param name="compareOptions">String compare option</param>
    public void Sort(int[] columns, bool[] descending=null, CultureInfo culture=null, CompareOptions compareOptions=CompareOptions.None)
于 2018-08-27T01:39:35.697 回答
-6

使用工作表的 autofilter() 属性

于 2013-03-25T12:52:29.207 回答