使用Interop按工作表对工作表进行排序

问题描述 投票:0回答:1

我已经在Internet上找到了各种相关代码,但似乎没有任何效果。也许有人可以指出我的错误:

// Get a Range of the data to sort
// (I also tried to use _worksheet.UsedRange, but it fails - why?)
var dataToSort = _worksheet.Range["A2", $"Z{lastLine}"];

// Sort range
dataToSort.Sort(_worksheet.Range["A2"]);

很有趣,它求助于列而不是行...

实际上我想写这样的东西:

_worksheet.Sort(columnIndex: 1);

但是我找不到合适的重载。

我的工作表看起来像这样:

1 |      |       |
2 | Z    | Data2 |
3 | A    | Data1 |

我希望它以后看起来像这样:

1 |      |       |
2 | A    | Data1 |
3 | Z    | Data2 |

((对于xlsx文件使用Excel 2019和Excel Interop 15)

excel office-interop excel-interop
1个回答
0
投票

哦,无论出于何种原因,sort orientation default都是xlSortRows。我不得不切换到xlSortColumns,现在它可以与这个简单的oneliner一起使用:

_worksheet.UsedRange.Sort(_worksheet.Columns[1], Orientation: XlSortOrientation.xlSortColumns);
© www.soinside.com 2019 - 2024. All rights reserved.