我正在使用C#中的Excel Interop,并编写代码来对拥有数万行数据的表格进行一些相当复杂的操作。它往往运行得很慢。
我经常将数据存储在某些变量中,然后在最终将结果写入工作表之前进行一些中间计算。
我确信这不是一个好的方法,但我经常发现自己正在构建一个临时工作表,在我的代码完成执行后将其删除,以便我可以使用Excel范围属性的方法来处理数据,而不是尝试在数组中实现类似的方法。最常见的情况是,这涉及到诸如按多个列排序、删除重复项等问题。这些列几乎总是具有许多不同类型的数据(字符串、整数、带两位小数的数字 - 虽然这些单元格中存储的实际数据类型并不总是简单的(例如100000000.01有时似乎是双精度类型,有时似乎是十进制类型)。处理所有不同数据类型的最简单方法似乎是只使用Excel范围,这就是为什么我的代码经常会创建临时工作表,然后在我的代码中将其删除的原因。
应该如何正确高效地处理这些情况呢?
IComparer<object>
和IEqualityComparer<object>
接口的自定义对象来进行 LINQ 操作吗? - Lucas Trzesniewski