2

我正在使用以下代码从 Excel 电子表格中读取值:

// Start with passed
int lastPassRow = sheets[passedVehicles].GetLength(0);

for (int i = 1; i < lastPassRow; i++)
{
   // Exception here
   if(DateTime.TryParse(sheets[passedVehicles][i, 0].ToString(), out result))
   {
      passedDates.Add((DateTime)sheets[passedVehicles][i, 0]);
   }
}

的类型sheets[passedVehicles]是一个多维数组,Object[,]上面的 for 循环IndexOutOfRange在 i = 1 时给了我一个异常,尽管我检查了行数。

我为有问题的电子表格添加了一些日志记录,并已验证:

  • i = 1 是失败的迭代
  • 的值为lastPassRow4
  • 的值sheets[passedVehicles].GetLength(1)也是四。

在我看来,所有值都在范围内。还有其他可能导致此异常的原因吗?

注意:我从 i = 1 开始,因为第 0 行是电子表格中的标题,不包含我要读取的数据。

4

1 回答 1

4

我怀疑这0是超出范围的。

Excel 数组是从 1 开始的,而不是您可能期望的从 0 开始的。

于 2015-05-19T13:51:34.617 回答