Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#二维数组访问抛出IndexOutOfRangeException_C#_Arrays_Excel - Fatal编程技术网

C#二维数组访问抛出IndexOutOfRangeException

C#二维数组访问抛出IndexOutOfRangeException,c#,arrays,excel,C#,Arrays,Excel,我得到了一个二维对象数组,我想读它。程序总是抛出IndexOutfrange异常 代码如下: Excel.Range range = activeWorksheet.UsedRange; MessageBox.Show(range.Value2.GetType().toString()); // output: System.Object[,] object[,] values = (object[,])range.Value2; MessageBox.Show("l0="+values.Get

我得到了一个二维对象数组,我想读它。程序总是抛出IndexOutfrange异常

代码如下:

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

那到底是怎么回事?!有什么想法吗?

Excel使用1作为维度的起始索引。通常,如果要搜索未知数组的第一个元素的索引,请执行以下操作:

int startXIndex = values.GetLowerBound(0); // 0 based dimension 
int startYIndex = values.GetLowerBound(1);
并对
GetUpperBound
执行相同的操作,以了解最后一个索引


更多。

只是尝试一下。从索引1.1开始,就是这样。天啊。现在我想起了为什么我从来都不想使用microsoft Tools开发,因为在决定从何处开始索引引用时有一个小小的差异?注意,在Excel中,它实际上是直观的,因为工作表从1,1开始。我认为,在恐龙在地球上游荡之前,一旦这个决定在亿万年前做出,它们就必须坚持下去,以保持连续性。现在,如果您正在谈论使用ExcelCOM组件,那么您可能想看看EPPlus。