在ClosedXML中,如何按列对工作表进行排序?

时间:2016-08-29 20:15:40

标签: c# excel closedxml

在使用asp / MVC的C#中,应用程序根据填写到特定列的数据生成Excel .xlsx文件,效果很好。

但目标是提供使用相同列但在特定列上排序的其他工作表,例如Column“J”

  var wb = new XLWorkbook();
  var ws = wb.Worksheets.Add("Proj Info");
  var ws2 = wb.Worksheets.Add("Sort By Dates");

工作表ws的值由变量或公式填充,数据是正确的,但无法对列进行排序

  ws.AutoFilter.Column("J");   //no, nothing changes
  ws.Column("J").Sort(); -> this shifts all the columns up but does not sort
  ws.Column("J").Sort(XLSortOrder.Ascending);  ->same, doesnt sort only shifts

更新:ws.Sort(9);在排序方面工作,但问题是第10列有一个公式,我需要对该列进行排序。

   ws.Cell("J" + c).FormulaR1C1 = "=C$2-F" + c;

这个?它不会排序。 ws.Sort(10);当单元格包含最终值时,但是当它获得公式时?是否有任何解决方法强制Excel页面在每个单元格中实现公式之后进行排序?

1 个答案:

答案 0 :(得分:2)

您没有对表格进行排序,而是对J列中的值进行排序。

试试这个:

ws.Sort("Column10");