如何在 VSTO 中交换行 (excel)

How to swap rows in VSTO (excel)

我想在 C# 中对来自 VSTO 的 excel 电子表格进行排序。但是我想使用我自己的客户排序技术,因此不能使用 Range.Sort 方法。我认为,如果我们能够从在一定范围内交换行的能力开始,那就太好了。

我认为交换行对用户来说太慢了,但还没有尝试过。 custom sorting in Excel 不适合你?我记得几年前在 VBA 中使用过它(当时可能 Excel 2003)

如果您正在处理大量数据(但也非常适合小数据),您可以考虑将范围加载到数组中,通过 C# 对其进行排序,然后将其放回 Excel。

System.Array dataArray = (System.Array)(range.Cells.Value2); //the value is boxed two-dimensional array

那时你将不得不处理格式,但我仍然认为它比使用 Excel 范围对象

进行操作要快得多