为什么数据表添加vaule在c#中有IndexOutOfRangeException

时间:2016-09-12 02:09:25

标签: excel c#-4.0 datatable npoi

原始数据(EXCEL FILE)

kwargs

[CODE]

1TEST101    TEST1   YOYO    2015/11/25 1:38 PM
1TEST102    TEST2   YOYO    2015/11/23 9:17 PM
1TEST103    TEST3   YOYO    2015/11/23 9:15 PM
1TEST104    TEST4   YOYO    2015/12/10 6:13 PM
1TEST105    TEST5   YOYO    2015/12/10 2:29 PM
1TEST106    TEST6   YOYO    2015/12/11 11:03 AM
1TEST107    TEST7   YOYO    2015/12/2 8:50 AM
1TEST108    TEST8   YOYO    2015/12/12 12:58 PM
1TEST109    TEST9   YOYO    2015/12/2 8:51 AM
1TEST110    TEST10  YOYO    2015/12/10 2:29 PM
1TEST111    TEST11  YOYO    2015/11/20 8:44 AM
1TEST112    TEST12  YOYO    2015/11/20 8:45 AM
1TEST113    TEST13  YOYO    2015/11/20 8:47 AM
1TEST114    TEST14  YOYO    2015/11/20 8:47 AM
1TEST115    TEST15  YOYO    2015/11/20 8:49 AM
1TEST116    TEST16  YOYO    2015/11/20 9:15 AM

我使用NPOI读取excel到datatable,但是当程序在table.Rows.Add(dataRow [K]);

运行时

它会显示“找不到第4列”。问题。

如何解决这个问题,谢谢。

2 个答案:

答案 0 :(得分:0)

看起来您的索引不正确。当您致电table.Rows.Add(datarow[K])时,您试图将dataRow的第K个元素添加为表格中的一行。您已将表设置为只有4列,因此当您尝试访问第5列(K = 4)时,您会收到错误。

答案 1 :(得分:0)

您正在尝试从datarow添加对象,而不是整行:

table.Rows.Add(dataRow[K]); // when loop at 5 time , it  have the IndexOutOfRangeException problem

这应该替换为

table.Rows.Add(dataRow);

IndexOutOfRangeException是由K索引值引起的 - 因为dataRow只有4列,它无法获得5 - 数组元素