【发布时间】:2014-01-18 16:28:45
【问题描述】:
我有要应用小计函数的数据,然后按降序对结果数据进行排序。到目前为止,我已经设法让我的代码应用小计函数,然后更改视图,以便它只显示我想要排序的列。我现在无法弄清楚如何使用 .Sort 方法仅对可见数据进行排序。
我实现小计的代码:
xcel.Range range = excelWorksheet.UsedRange;
range.Subtotal(1, Excel.XlConsolidationFunction.xlSum, Type.Missing, (object)true, (object)false, Excel.XlSummaryRow.xlSummaryBelow);
我的代码将视图更改为我想要排序的列:
excelWorksheet.Outline.ShowLevels(2, Type.Missing);
此时,我已经尝试了 .Sort 方法的许多变体,几乎使用了我能想到的所有范围(可见范围、明确说明我想要的列、整个工作表、小计过滤器之前使用的范围、小计过滤器后使用的范围)。我也尝试在 Excel 中录制宏,但我不知道如何将其转换回 C#。
正是我需要的 Excel 宏是:
Range("G3").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("G3"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:G2853")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
有人知道小计分组后如何对数据进行排序吗?
【问题讨论】:
标签: c# excel sorting excel-interop subtotal