【问题标题】:How to exclude first row from sorting out Excel column Sort method of Excel.Range如何从排序中排除第一行 Excel 列的排序方法 Excel.Range
【发布时间】:2016-12-24 06:41:55
【问题描述】:

我正在整理一个看起来像这样的 Excel 工作表

此 Excel 工作表将在运行时包含其他条目,如“f7.3.2”、“f8.3.1”等,最后我想对整个 Excel 进行排序。 我正在根据列“B1”对整个 Excel 进行排序,如下面的代码所示

 dynamic fullDataRange = xlWorkSheet.UsedRange;
 fullDataRange.Sort(fullDataRange.Columns[2], Ex.XlSortOrder.xlAscending);

上面代码的输出是

在最后一行你可以找到

谁能告诉我我做错了什么? 我想保持第一行不变,然后根据 B1 列对 Excel 进行排序。 我还尝试在使用以下代码进行排序之前冻结第一行。还是不行。

xlWorkSheet.Application.ActiveWindow.SplitRow = 1;
xlWorkSheet.Application.ActiveWindow.FreezePanes = true;

非常感谢。

【问题讨论】:

  • @Jeeped 你是说codefullDataRange.Sort(fullDataRange.Columns[2], Ex.XlSortOrder.xlAscending, Ex.XlYesNoGuess.xlYes);code
  • 我不确定(在我脑海中)如何将 Header 参数带入Range.Sort method,但这是告诉 .排序你有一个标题。

标签: c# excel sorting


【解决方案1】:

好的,我将 fullDataRange 对象从 dynamic 更改为 Excel.Range > 对象,一切正常! 下面是代码

Ex.Range fullDataRange= xlWorkSheet.UsedRange;
fullDataRange.Sort(fullDataRange.Columns[2, miss], Ex.XlSortOrder.xlAscending, miss, miss, Ex.XlSortOrder.xlAscending,
             miss, Ex.XlSortOrder.xlAscending, Ex.XlYesNoGuess.xlGuess, miss, miss,
           Ex.XlSortOrientation.xlSortColumns, Ex.XlSortMethod.xlPinYin, Ex.XlSortDataOption.xlSortNormal,
           Ex.XlSortDataOption.xlSortNormal,
           Ex.XlSortDataOption.xlSortNormal);

感谢@Jeeped 的评论。

【讨论】:

  • 仅供参考 - 可能需要澄清 missType.Missing
猜你喜欢
  • 2016-12-14
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2017-05-03
  • 1970-01-01
  • 2017-01-10
  • 2016-11-21
相关资源
最近更新 更多