C# 如何使用PowerShell从Excel列排序中排除第一行

C# 如何使用PowerShell从Excel列排序中排除第一行,c#,excel,sorting,powershell,C#,Excel,Sorting,Powershell,我想对一列进行排序(这是一个目标日期,我想按最早的日期进行排序)。 问题是第一行是一个文本(列的名称),所以当我按F列(目标日期)对其进行排序时,文本行将转到excel文档的最末尾。 我希望这个专栏的名字能留在每个专栏的顶部 代码如下: $objRange = $worksheet.UsedRange $objRange2 = $Excel.Range("F2") [void]$objRange.Sort($objRange2.Range("F2")) 我不知道如何排除对第一行进行排序。由于

我想对一列进行排序(这是一个目标日期,我想按最早的日期进行排序)。 问题是第一行是一个文本(列的名称),所以当我按F列(目标日期)对其进行排序时,文本行将转到excel文档的最末尾。 我希望这个专栏的名字能留在每个专栏的顶部

代码如下:

$objRange = $worksheet.UsedRange
$objRange2 = $Excel.Range("F2")
[void]$objRange.Sort($objRange2.Range("F2"))

我不知道如何排除对第一行进行排序。

由于您的区域有标题,您必须向排序方法添加一个参数,以指示它不应对标题进行排序

然后,您的range命令将如下所示:

[void]$objRange.Sort($objRange2,1,$null,$null,1,$null,1,1)
排序方法不喜欢xlSortOrder参数的$null,所以我只指定了1,这意味着升序。如果需要下降,请使用2。最后一个1是我们真正关心的参数。指定1表示是,该范围包含不应包含在排序操作中的标题

语法参考:


由于您的区域有标题,您必须向Sort方法添加一个参数,以指示它不应对标题进行排序

然后,您的range命令将如下所示:

[void]$objRange.Sort($objRange2,1,$null,$null,1,$null,1,1)
排序方法不喜欢xlSortOrder参数的$null,所以我只指定了1,这意味着升序。如果需要下降,请使用2。最后一个1是我们真正关心的参数。指定1表示是,该范围包含不应包含在排序操作中的标题

语法参考:


我的朋友,你又救了我一天:)它像一个符咒一样有效:)非常感谢你的帮助,我真的很感激。我正在使用c#但是我的标题也在列表中排序,我的朋友,你又救了我一天:)它像一个符咒一样有效:)非常感谢你的帮助,我真的很感激。我正在使用c#,但我的标题也在列表中排序