我有一个 C# 程序,它将结果输出到 Excel 电子表格中。每行包含参赛者的信息,包括姓名、身份证号、地址、分数等多个字段,每个字段位于不同的列中。我想根据分数对所有这些竞争对手进行排序(因此我想对这些行进行排序),记录从最高到最低降序排序。解决这个问题的最佳方法是什么?这是我正在尝试的代码,但它不起作用。
Excel.Range sortRange;
sortRange = worksheet.get_Range("A14", "K32");
Excel.Range scoreColumn;
scoreColumn = worksheet.get_Range("C14", "C32");
sortRange.Sort(scoreColumn, Excel.XlSortOrder.xlDescending,
最佳答案
啊哈哈,我刚刚完成了这个,遗憾的是代码是用 VB.NET 编写的,如果您在翻译成 C# 时遇到任何困难,请告诉我
Dim lastrow As Integer = 0
lastrow = xlsSheet.UsedRange.Row + xlsSheet.UsedRange.Rows.Count - 1
Dim myRange = xlsSheet.range("A2", "Q" & lastrow)
myRange.Select()
xlsApp.ActiveWorkbook.Worksheets("your_work_sheet_name").Sort.SortFields.Add(Key:= _
xlsSheet.Range("A2:A" & lastrow), Order:=Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending)
xlsApp.ActiveWorkbook.Worksheets("your_work_sheet_name").Sort.SortFields.Add(Key:= _
xlsSheet.Range("B2:B" & lastrow), Order:=Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending)
With xlsApp.ActiveWorkbook.Worksheets("your_work_sheet_name").Sort
.SetRange(myRange)
.Header = Microsoft.Office.Interop.Excel.XlYesNoGuess.xlYes
.MatchCase = False
.Orientation = Microsoft.Office.Interop.Excel.XlSortOrientation.xlSortColumns
.SortMethod = Microsoft.Office.Interop.Excel.XlSortMethod.xlPinYin
.Apply()
End With
关于c# - 使用 Excel Interop C# 对 Excel 行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936457/