1

我有一个二维对象数组,我想阅读它。该程序总是抛出一个 IndexOutOfRange 异常。

这是代码:

Excel.Range range = activeWorksheet.UsedRange;
MessageBox.Show(range.Value2.GetType().toString()); // output: System.Object[,]
object[,] values = (object[,])range.Value2;
MessageBox.Show("l0="+values.GetLength(0)); // output: 1483
MessageBox.Show("l1"+values.GetLength(1)); // output: 221
MessageBox.Show(values.GetValue(0, 0).ToString()); // -> throws IndexOutOfRangeException

那里到底是怎么回事?!有任何想法吗?

4

1 回答 1

0

Excel 使用 1 作为其维度的起始索引。一般来说,如果要搜索未知数组的第一个元素的索引:

int startXIndex = values.GetLowerBound(0); // 0 based dimension 
int startYIndex = values.GetLowerBound(1);

并且对GetUpperBound对知道最后一个索引做同样的事情。

更多在这里

于 2013-09-03T13:31:29.503 回答