我有一个二维对象数组,我想读它。该程序始终抛出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
那到底是怎么回事?!有什么想法吗?
答案 0 :(得分:0)
Excel使用1作为其尺寸的起始索引。通常,如果要搜索未知数组的第一个元素的索引:
int startXIndex = values.GetLowerBound(0); // 0 based dimension
int startYIndex = values.GetLowerBound(1);
对GetUpperBound
执行同样的操作以了解最后一个索引。
更多here。