繁体   English   中英

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

[英]In ClosedXML, how to sort a worksheet by a column?

在使用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页面在每个单元格中实现公式后进行排序?

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

尝试这个:

ws.Sort("Column10");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM