【发布时间】:2019-08-07 14:48:10
【问题描述】:
我想将一维数组复制到 Excel 中的列范围。为此,我使用interop。
我已经尝试过这些东西:
range.get_Resize(Ary.Length, 1).Value2 = Ary;range.set_Value(Excel.XlRangeValueDataType.xlRangeValueDefault, Ary);- 和
range.Value = Ary;一样简单
我什至尝试过使用range.value2,但这些东西会将数组中的第一个索引值复制到整个范围。
假设,如果范围中有 200 行,并且数组包含整数 101-300,那么使用上述尝试的方法,在整个范围内只复制 101。
谁能帮我解决这个问题?如果有人可以向我解释这种奇怪的行为会更有帮助!提前致谢。
注意:我知道我可以通过 for 循环 做到这一点,但这需要时间。我肯定想知道一种方法,它可以用不到一分钟的时间来迭代一百万行。
【问题讨论】:
-
在我的旧(Visual Basic)代码中,我可以直接设置值。你的'Ary'是什么类型的。
-
它是一个字符串数组。但问题是,即使使用 int 数组和 object 数组,我也试过了,但没有运气。我不明白为什么它不起作用。
-
您可以尝试将范围设为“动态”变量吗?还有:当数组太大时,'Value'的集合会抛出异常,我一个一个设置数据。
-
正如您所建议的,我尝试使用动态变量,但没有成功。仍然是相同的行为。
-
最新建议:在 Visual Basic 中尝试。是的,我知道,但在 .Net 1.0 的古老和黑暗时代,它在互操作方面是无与伦比的,特别是后期绑定。现在世界变得更美好了。我们已将一个 .vb 项目添加到我们的解决方案中,该项目原本是 C# 中的。
标签: c# arrays excel-interop