EPPlus - 找不到第10列

时间:2012-10-29 21:33:03

标签: epplus

我有一个应用程序,用户上传excel(2007或更高版本)文件,此文件被解析,内容存储在数据库中。我正在使用EPPlus从Excel中读取内容。这是代码段

foreach (var worksheet in package.Workbook.Worksheets)
                        {
                            for (int i = worksheet.Dimension.Start.Row + 1; i <= worksheet.Dimension.End.Row; i++)
                            {
                                DataRow newRow = dt.NewRow();

                                for (int j = worksheet.Dimension.Start.Column; j <= worksheet.Dimension.End.Column; j++)
                                {
                                    newRow[j - 1] = worksheet.Cells[i, j].Value;
                                }

                                dt.Rows.Add(newRow);
                            }
                        }

当j的值达到11时,我得到以下异常找不到第10列。但我确实检查了文件,它实际上有列索引10.我放了一个断点,看第9列的值,它与第10列之前的值完全相同。

所以任何人都可以帮助我吗?问题到底是什么?

我检查了API,EPPlus lib实际上有一个索引属性Cells,它接受列的索引作为第二个参数。

1 个答案:

答案 0 :(得分:1)

你确定异常是来自“worksheet.Cells [i,j] .Value”而不是来自“newRow [j - 1]”吗?您的循环计数器“j”为11,但异常表示“找不到第10列”,它与您的newRow上的“[j-1]”索引器匹配。