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

问题描述 投票:0回答:1

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

但目标是提供使用相同列但在特定列上排序的其他工作表,例如列“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页面在每个单元格中实现公式后进行排序?

c# excel closedxml
1个回答
2
投票

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

试试这个:

ws.Sort("Column10");
© www.soinside.com 2019 - 2024. All rights reserved.